簡體   English   中英

為什么部分方法只能有void返回類型?

[英]Why partial methods can only have void return type?

部分方法只能具有void返回類型這一事實背后的原因/邏輯/障礙是什么?

謝謝

如果您沒有為它們提供實現,則部分方法被設計為省略。 編譯器實際上刪除了對未實現的部分方法的調用。

這也突出了為什么他們不能返回任何東西:如果你依賴一個返回值而不實現部分方法,那么呢? 盡管代碼清楚地顯示了一項任務,但你還是有一些未初始化的東西。

同樣,使用Conditional屬性的方法只能出於同樣的原因返回void 方法調用可能存在於編譯的IL中,也可能不存在。

部分方法的實現是可選的。

如果未提供實現,則調用仍然有效,但編譯器將以靜默方式刪除。 委托只能分配一個實現的部分方法。

這意味着它們應該沒有副作用 - 實際上沒有返回值或“out”參數,它們不能是虛擬的,並且始終是私有的。

更多這里

在編譯時刪除未實現的部分方法。 編譯器可以忽略對void方法的調用,因為它們只修改現有對象的狀態。 它無法刪除返回對象的方法,因為這會使代碼無效。

暫無
暫無

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

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