国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#中使用反射獲取結構體實例及思路

2020-01-24 03:07:42
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

static void Main(string[] args)
{
    Type type = typeof(MyObject);
    object obj = type.GetConstructor(Type.EmptyTypes).Invoke(null);
    Console.WriteLine(obj);
}

class MyObject
{

}


之前我一直沒有發現原來結構是不可以這樣實例化的

換種方式,似乎結構體使用反射無法得到其構造函數ConstructorInfo對象

類中有一個隱式的構造函數,而結構沒有構造函數

我甚至嘗試查找非public構造函數

依然沒有

這問題一度困擾我很久....解決的方法并不難,所以也沒當回事,但今天有個朋友又問到了這個問題,所以總結一下發出來,給同樣遇到這個問題的朋友

其實非常簡單,只要這樣就可以了

復制代碼 代碼如下:

static void Main(string[] args)
{
    Type type = typeof(MyStruct);
    object obj1 = type.Assembly.CreateInstance(type.FullName);
}

struct MyStruct
{

}


這個方法說明

Assembly.CreateInstance

使用區分大小寫的搜索,從此程序集中查找指定的類型,然后使用系統激活器創建它的實例。

使用這個方法就不用管class還是struct 都是可以用的,如果是class只要保證有無參構造函數就可以了

這個方法不是什么高深的玩意兒,主要是給同樣碰到這個問題的同學說明一下

======================================================

感謝 KarasCanvas同學,原來C#還有Activator這么一個類

復制代碼 代碼如下:

Activator.CreateInstance(Type)

這樣就可以了

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南充市| 凤翔县| 依安县| 洪洞县| 军事| 高安市| 惠水县| 和政县| 嘉祥县| 鄯善县| 揭西县| 拉萨市| 鞍山市| 蒙阴县| 五原县| 佳木斯市| 梁平县| 扶余县| 来宾市| 濮阳县| 德钦县| 铜梁县| 延安市| 依安县| 唐河县| 定兴县| 卓尼县| 广水市| 河池市| 宁陵县| 自治县| 巢湖市| 克什克腾旗| 老河口市| 邹平县| 山丹县| 卢龙县| 德安县| 龙井市| 和平县| 武汉市|