c#中反射的用法(即如何根據字元找到已定義的變數)

來源:互聯網
上載者:User

    常常羨慕javascript中,用$('#ab'),即可找到某個變數或控制項,然後賦值或取值。而c#這種靜態語言就不好辦了,但其有反射,可以達到目的。

    反射要先:1、引用using System.Reflection; 2、定義一個類。舉例如下:

 

public class ids    {        public  string id1="a", id2="a", id3="a";    }

然後:

ids idd = new ids();Type t = typeof(ids);//也可以用執行個體化過的:=idd.GetType(); 這就是typeof和getType()的區別,很重要            FieldInfo fi = t.GetField("id1");            label1.Text = fi.GetValue(idd).ToString();            fi.SetValue(idd, "along");            label1.Text += "\r\n" + idd.id1;

網上也有說要:

FieldInfo fi = t.GetField("id1",BindingFlags.NonPublic | BindingFlags.Instance);

但我用了,加上這後半句,反而不行。

 

Properties.Settings的用法

一般可以用:Properties.Settings.Default.idCount 。但為了達到找到某個變數,還可以用:

Properties.Settings.Default.Properties["table" + i].DefaultValue.ToString()

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.