我知道struct是值類型,class是.Net中的引用類型。我想知道這裏是否有更好的解決方案。默認初始化創建一個struct vs類對象的數組
例,
public struct Holder
{
public double Value { get; set; }
public Holder()
{
this.Value = 0.0;
}
}
使用這種結構的:
void SomeFunction(int n)
{
Holder[] valueHolders = new Holder[n];
...
valueHolders[0].Value = someValue;
}
這工作完全正常。現在只需將Holder
更改爲class
即可。它拋出一個null
對象引用,因爲valueHolders
包含所有值爲null
。
現在我已經改變了我的代碼
valueHolders[0] = new Holder();
valueHolders[0].Value = someValue;
它工作正常。有沒有辦法像struct
類型那樣一次創建valueHolders
中的所有元素。
可變結構是邪惡的。 – SLaks
你確定公共持有人()甚至編譯? –