(對不起,如果重複的,我不知道,如果要檢查可爲空或原語或其他)C# - 如何檢查是否需要構造類型的對象?
我創建一個變量類型的對象的數組。它可以是int
,string
,Point
或MyCustomClass
(大概沒有雖然枚舉,但他們一樣int
吧?)。
輸入:類型數組元素。
黑匣子:檢查是否需要構建類型需要。創建數組,如果需要contruction創建每個元素(使用默認值,因爲他們現在不重要)。構造函數必須是無參數的( - >失敗函數),但將字符串視爲特殊類型。
輸出:object
(它運行時類型是int[]
或string[]
或Point[]
等)
我現在面臨的問題是,我創建陣列充滿
null
。原語和結構很好,我得到
int[]
毫無問題,但是類別導致「
null[]
」。
我有什麼至今(不知道如果我抓住了他們所有):
public object createArray(Type arrayElementType, int arrayLength)
{
Array a = Array.CreateInstance(arrayElementType, arrayLength);
if (!arrayElementType.IsPrimitive) // correct would be: if (!arrayElementType.IsValueType)
for (int j = 0; j < arrayLength; j++)
a.SetValue(Activator.CreateInstance(arrayElementType), j);
return a;
}
這真的不清楚你想達到的目標。讓我們以'string'爲例 - 你顯然需要一個非空字符串引用的數組,但是這些字符串的內容應該是什麼? –
@JonSkeet內容無關緊要。他們不能是空的。 – Bitterblue
你能介紹一些關於這方面的代碼嗎? – Naren