1
我試圖創建一個泛型類型的實例。我嘗試通過反射獲取構造函數,現在您將看到下面的方法,並且兩次產生的對象都爲null。Activator.CreateInstance調用構造函數,但返回null
Type type = typeof(StatDefinition<>).MakeGenericType(statTypes[selectedType]);
object definitionObject = Activator.CreateInstance(type, newName, newDescription);
StatTopic.WriteLine(definitionObject);
爲了幫助理解變量,statTypes [selectedType]只是一個基本類型(bool,int,float等)。對於我的測試,它一直是typeof(float)。 'newName'和'newDescription'都是字符串。
爲StatDefinition <>的構造是:
public StatDefinition(string name, string description) : base(name, description)
{
StatTopic.WriteLine(typeof(T));
}
我的控制檯第一輸出 'System.Single'(從StatDefinition的構造函數),由下面的 '空'(definitionObject爲空)。
我似乎無法找到原因,構造函數顯然被調用沒有問題,但新的對象不被返回。
編輯:stat定義類擴展Unity3D的'ScriptableObject'類,這似乎是問題。仍然不知道如何解決這個問題
你可能想嘗試'Activator.CreateInstance(type,new object [] {newName,newDescription});' – Alex
謝謝,但我有完全相同的問題。任何其他想法? – Randomman159
所以,如果你把一個斷點'statTopic.WriteLine(definitionObject);'它是否顯示'definitionObject'爲空? – Alex