[英]What does the part "=> 100" mean in the C# property?
在一些文章中我發現了這個:
public interface ICargo {
int FoodStorage { get => 100; }
}
部分=> 100
是什么意思?
從上下文來看,它看起來像一個默認值。 但據我所知,這不是默認值的設置方式。 至少,我從未在這種情況下見過這種語法。
我試過谷歌搜索,但沒有幫助。
該語法稱為expression-bodied property/member 。
如您的代碼所示,它可用於只讀屬性。
get => 100;
相當於:
get { return 100; }
但在您的具體情況下,還涉及另一個問題:
由於您在接口中使用它,它實際上為該屬性提供了默認實現。
如果實現接口的 class 不提供此屬性的實現,則將使用接口提供的默認值(即具有重新調整 100 的屬性)。
這稱為默認接口實現,僅在 C# 8.0 中可用。
它是一個表達式主體元素,基本上它的行為與
public interface ICargo
{
int FoodStorage { get { return 100; }
}
使用lambda 表達式可以使代碼更簡潔,沒有多余的括號。 您可以在任何可以使用屬性的地方使用這兩種語法。
它是expression bodies property ,它是寫一個只有 getter 且具有常量值的屬性的縮寫形式。
它的等價物是
public int FoodStorage
{
get { return 100; }
}
及其只讀屬性 expression-bodied 屬性可從 C# 6.0 獲得
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.