簡體   English   中英

C# 屬性中的“=> 100”部分是什么意思?

[英]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.

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