什么是C ++ CLI相当于vb&n;什么都没有?

时间:2016-02-12 23:08:37

标签: c++-cli

我在这样的地方

generic <typename ItemType> where ItemType : ItemBase
public ref class Container {
    ItemType GetItem(int i) {
        ...
        if (someSpecialCondition) return ???
        ...
    }
};

我想要返回相当于vb&#34; Nothing&#34;但无法弄清楚它的语法。它不像null或nullptr,我知道的很多。

1 个答案:

答案 0 :(得分:2)

对于泛型非常不直观,请注意,如果type参数是值类,它不能是nullptr。它也与语言规范不匹配,语言规范承诺当类型约束为ref class时,nullptr有效。

类型T的默认值为T()。所以它是:

ItemType GetItem(int i) {
    ...
    if (someSpecialCondition) return ItemType();
    ...
}

如果ItemType是引用类型,则会生成nullptr,而当ItemType是值类型时,默认值(所有成员为零初始化)。与Nothing在VB.NET中的作用相同[/ p>]