C 可以通過類的例項名稱來使用這個例項麼?

時間 2021-05-30 23:40:44

1樓:「已登出」

php可以,c#好像不行,不過如果b是某個類的屬性或者字段通過反射是可以的,如果只是方法內的區域性變數是沒有辦法的。不過也有可能是我水平有限。

2樓:Eleven

描述的不清不楚,猜測下是要通過乙個字串去獲取乙個型別的例項?在C#有個反射的技術可以實現,Reflection,大概是如下步驟:

1 找到型別A所在的Dll,用到的主要就是Assembly類,Assembly.Load(dll名稱)載入Dll得到Assembly型別物件

2 然後基於Assembly.GetType(完整型別名稱,也就是你的B字串)獲取到型別

3 基於上面得到的型別,可以Activtor.CreateInstance(型別)獲取例項了

這裡寫的Assembly和Activtor都不需要額外引用dll,只需要用VS自動提示,看看命名空間就行了

3樓:Fanix

這個東西叫反射。反射我不敢說是C#獨創,但也是C#中絕對有特色的功能。通過反射你可以實現外掛程式式的程式設計。

但我看你的描述又不像是反射。你似乎是已經例項化了A類。那你可以用字典對映的方式把這個類對映到乙個字串上。

public class A

public string Name

A B= new A();

B.Name="xiaoming";

Dictionary dic=new Dictionary();

dic.Add("B",B);

dic["B"].Name;

4樓:

首先題目問的不是很清楚, 不知道你要做什麼場景應用,你說的只是乙個期望的效果。

建議寫個單元測試,這樣答題者來實現就可以了我猜測你應該是需要這樣的效果:

public class Globals

var globals = new Globals ;

Console.WriteLine(await CSharpScript.EvaluateAsync("X+Y", globals: globals));

參考來自: https://

古時的煤塊可以直接拿來使用嗎?

飛哥傳說520 試掃其煤以為墨,黑光如漆,松墨也.宋 沈括 夢溪筆談 煤炭別稱 煤炭是古代植物埋藏在地下經歷了複雜的生物化學和物理化學變化逐漸形成的固體可燃性礦產.一種固體可燃有機巖,主要由植物遺體經生物化學作用,埋藏後再經地質作用轉變而成.俗稱煤炭.中國是世界上最早利用煤的國家.遼寧省新樂古文化遺...

C 中 類的vector容器中如何通過類中的成員來查詢到含這個成員的類?不一定只有乙個類含該元素?

黃亮anthony 題目很模糊,不確認題目的含義是否如此,我還是寫個答案吧,如果題主看到,請修改一下問題。成員找自己的類是指這樣的情況 struct A A some 10 int pa some 2 a A pA A char pa offsetof A,a offsetof的原理大體為這樣 ch...

c 中可以繼承基類的私有成員嗎?

望山 你要正確理解 不能直接訪問 的含義,就正確理解這個問題了。基類的私有成員都必然是派生類的成員 這就是繼承的意思 只是語言規定,不允許派生類新增加的成員函式訪問它。不要鑽牛角尖問 我硬要去訪問會怎麼樣?語言這樣規定就是為了幫助你避免不小心訪問到基類的私有成員,你應該感激語言的設計而不是想方設法去...