簡體   English   中英

如果我不實現部分方法會怎樣?

[英]what happens if I don't implement a partial method?

我使用SQLMetal生成了一些代碼,並使用了一段時間。 剛才,我瀏覽了生成的代碼,並在每個類中找到了一些我從未實現過的部分函數,​​這些函數也未由SQLMetal實現。 這些函數在代碼中被調用。 我想知道-當我調用這樣的函數時會發生什么-不存在嗎?

這些函數在代碼中被調用。 我想知道-當我調用這樣的函數時會發生什么-不存在嗎?

該調用已被編譯器完全刪除。 為了調用該方法而求值的所有表達式也將被刪除-因此,如果您具有以下條件:

SomePartialMethod(ComputeSomeValue());

SomePartialMethod不落實, ComputeSomeValue不會被調用。

或如MSDN所說

如果未實現該方法,則編譯器將刪除方法簽名和對該方法的所有調用。 對該方法的調用(包括調用中對參數進行求值所產生的任何結果)在運行時均無效。 因此,即使未提供實現,部分類中的任何代碼也可以自由使用部分方法。 如果調用但未實現該方法,則不會導致編譯時或運行時錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM