我有以下代碼:收益率回報怪異的行爲
virtual public IEnumerable<string> GetSelectedIds(){
if (_kids == null)
yield return null;
foreach (var current in _kids.Nodes)
yield return current;
}
這段代碼在_kids.Nodes
與NullPointerException
如果_kids == null
我希望這種方法的前提水平,如果_kids == null
返回崩潰但它不!
問題
爲什麼在方法開始時的前提條件有沒有影響?
'yield return'不停止枚舉 - 你應該使用'yeild break'作爲金剛建議的 –
如果'_kids == null'你會考慮返回一個空序列嗎? –
@AhmedKRAIEM是的,那應該很好。 – GETah