2016-02-12 23 views
1

我在這樣一個地方什麼是C++ CLI等價於vb的Nothing?

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

我想回到VB的「無」的等同,但不能找出語法吧。它不喜歡null或nullptr,我非常瞭解。

回答

2

這對泛型非常不直觀,請注意,如果類型參數是一個值類,它不能是nullptr。它也不符合語言規範,當類型限制爲ref class時,它承諾nullptr有效。

類型T的默認值爲T()。因此,它是:

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

哪個產生nullptr如果是的ItemType引用類型和默認值(所有成員初始化爲零)時的ItemType是值類型。 Nothing在VB.NET中的作用

相關問題