我在这样的地方
generic <typename ItemType> where ItemType : ItemBase
public ref class Container {
ItemType GetItem(int i) {
...
if (someSpecialCondition) return ???
...
}
};
我想要返回相当于vb&#34; Nothing&#34;但无法弄清楚它的语法。它不像null或nullptr,我知道的很多。
答案 0 :(得分:2)
对于泛型非常不直观,请注意,如果type参数是值类,它不能是nullptr
。它也与语言规范不匹配,语言规范承诺当类型约束为ref class
时,nullptr有效。
类型T
的默认值为T()
。所以它是:
ItemType GetItem(int i) {
...
if (someSpecialCondition) return ItemType();
...
}
如果ItemType是引用类型,则会生成nullptr,而当ItemType是值类型时,默认值(所有成员为零初始化)。与Nothing
在VB.NET中的作用相同[/ p>]