這個問題答案選至《C#入門經典》 如果方法具有返回類型,那就可以作為表達式的一部分: x=Manipulate(y,z); 如果沒有給部分方法提供實現代碼,編譯器就會在使用該方法的所有地方刪除該方法。在上面的代碼中,這會使x的結果變得模糊,因為Manipulate()方法沒有替代方法,如果沒有這個方 ...
這個問題答案選至《C#入門經典》
如果方法具有返回類型,那就可以作為表達式的一部分:
x=Manipulate(y,z);
如果沒有給部分方法提供實現代碼,編譯器就會在使用該方法的所有地方刪除該方法。在上面的代碼中,這會使x的結果變得模糊,因為Manipulate()方法沒有替代方法,如果沒有這個方法,可能只需忽略整行代碼,但編譯器無法確定我們是否的確希望忽略它。
沒有返回類型的方法不能作為表達式的一部分來調用,所以編譯器可以安全地刪除對部分方法的所有調用。
同樣,也禁止使用out參數,因為在方法調用之前,用作out參數的變數必須是未定義的,而應在方法調用之後定義。刪除方法定義會違反這個規則。