」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > `=>`運算符在C#屬性和方法中做什麼?

`=>`運算符在C#屬性和方法中做什麼?

發佈於2025-02-18
瀏覽:167

What Does the `=>` Operator Do in C# Properties and Methods?

C# 屬性或方法中 => 運算符的含義

在 C# 中,=> 運算符在定義表達式主體成員中起著重要作用,這是 C# 6 中引入的語法糖特性。這些成員為屬性中的 getter 方法提供了簡潔的語法。

表達式主體屬性

在屬性聲明中使用 => 運算符會創建一個表達式主體成員。這意味著編譯器會自動生成一個 getter 方法,其返回值是箭頭右側的表達式。

例如,考慮以下表達式主體屬性:

public int MaxHealth => Memory[Address].IsValid ? Memory[Address].Read(Offs.Life.MaxHp) : 0;

這段代碼實際上定義了一個屬性,它具有一個 getter 方法,該方法返回:

  • 如果 Memory[Address].IsValid 為真,則返回 Memory[Address].Read(Offs.Life.MaxHp)
  • 如果 Memory[Address].IsValid 為假,則返回 0

與字段初始化的差異

與表達式主體屬性不同,帶有初始化器的字段聲明只在類型實例化期間一次性評估其表達式。例如:

public int MaxHealth = x ? y : z;

這段代碼聲明了一個字段,其值由三元條件運算符確定,該運算符僅在類型實例化時進行評估。

其他表達式主體成員

表達式主體成員不僅限於屬性。它們還可以用於:

  • 索引器
  • 方法
  • 運算符
  • 構造函數(C# 7.0 中添加)
  • 終結器(C# 7.0 中添加)

但是,它們不能用於嵌套類型、事件或字段。

與 Lambda 表達式的區別

雖然表達式主體成員與 lambda 表達式具有相似之處,但它們是不同的概念。 lambda 表達式產生委託實例或表達式樹,而表達式主體成員是編譯器在幕後生成特定成員實現的指令。

=> 運算符的存在主要用於區分錶達式主體成員和其他 C# 6 功能。

最新教學 更多>
  • jQuery.height()為何返回隱藏元素的值?
    jQuery.height()為何返回隱藏元素的值?
    在這種情況下,具有ID“ target”的元素具有通過CSS設置為“無”的元素。但是,當使用$(“#target”)檢查其高度時。 If an element has an offsetWidth of 0 (considered "hidden" by jQuery), th...
    程式設計 發佈於2025-04-12
  • HTML5全屏API使用指南 - SitePoint
    HTML5全屏API使用指南 - SitePoint
    If you don’t like change, perhaps web development isn’t for you. I previously described the Full-Screen API in late 2012 and, while I claimed the im...
    程式設計 發佈於2025-04-12
  • 如何通過單擊鼠標單擊的div中編程選擇所有文本?
    如何通過單擊鼠標單擊的div中編程選擇所有文本?
    在鼠標上選擇div文本單擊帶有文本內容,用戶如何使用單個鼠標單擊單擊div中的整個文本?這允許用戶輕鬆拖放所選的文本或直接複製它。 在單個鼠標上單擊的div元素中選擇文本,您可以使用以下Javascript函數: function selecttext(canduterid){ if(d...
    程式設計 發佈於2025-04-12
  • Java中ArrayList轉String\[\]數組方法
    Java中ArrayList轉String\[\]數組方法
    在java Converting using toArray() MethodThe toArray() method is a convenient way to convert an ArrayList to a String[].它接受數組作為參數,其中的元素被複製到其中。以下代碼片段演示了...
    程式設計 發佈於2025-04-12
  • 如何干淨地刪除匿名JavaScript事件處理程序?
    如何干淨地刪除匿名JavaScript事件處理程序?
    刪除匿名事件偵聽器將匿名事件偵聽器添加到元素中會提供靈活性和簡單性,但是當要刪除它們時,可以構成挑戰,而無需替換元素本身就可以替換一個問題。 element? element.addeventlistener(event,function(){/在這里工作/},false); 要解決此問題,請考...
    程式設計 發佈於2025-04-12
  • 我的Lightspeed服務器是否啟用了mod_rewrite?
    我的Lightspeed服務器是否啟用了mod_rewrite?
    使用.htaccess規則在Lightspeed服務器上不按預期運行的。本文提供了一個解決方案來驗證其在此類服務器上的狀態。 使用phpinfo() For Lightspeed servers, the following command can be used:sudo a2enmod rew...
    程式設計 發佈於2025-04-12
  • 如何使用“ JSON”軟件包解析JSON陣列?
    如何使用“ JSON”軟件包解析JSON陣列?
    parsing JSON與JSON軟件包 QUALDALS:考慮以下go代碼:字符串 } func main(){ datajson:=`[“ 1”,“ 2”,“ 3”]`` arr:= jsontype {} 摘要:= = json.unmarshal([] byte(...
    程式設計 發佈於2025-04-12
  • 哪種在JavaScript中聲明多個變量的方法更可維護?
    哪種在JavaScript中聲明多個變量的方法更可維護?
    在JavaScript中聲明多個變量:探索兩個方法在JavaScript中,開發人員經常遇到需要聲明多個變量的需要。對此的兩種常見方法是:在單獨的行上聲明每個變量: 當涉及性能時,這兩種方法本質上都是等效的。但是,可維護性可能會有所不同。 第一個方法被認為更易於維護。每個聲明都是其自己的語句,使...
    程式設計 發佈於2025-04-12
  • 如何使用Python理解有效地創建字典?
    如何使用Python理解有效地創建字典?
    在python中,詞典綜合提供了一種生成新詞典的簡潔方法。儘管它們與列表綜合相似,但存在一些顯著差異。 與問題所暗示的不同,您無法為鑰匙創建字典理解。您必須明確指定鍵和值。 For example:d = {n: n**2 for n in range(5)}This creates a dict...
    程式設計 發佈於2025-04-12
  • \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    答案: 在大多數現代編譯器中,while(1)和(1)和(;;)之間沒有性能差異。編譯器: perl: 1 輸入 - > 2 2 NextState(Main 2 -E:1)V-> 3 9 Leaveloop VK/2-> A 3 toterloop(next-> 8 last-> 9 ...
    程式設計 發佈於2025-04-12
  • Day - HTML與CSS
    Day - HTML與CSS
    [2 HTML代表超級文本標記語言。 HTML是用於創建網頁的標準語言。 它使用標籤或元素系統定義了網頁的結構。 [2 CSS代表級聯樣式表。 它用於樣式和格式化使用HTML創建的網頁的佈局。 它控制著顏色,字體,間距,定位和響應式設計之類的東西。 CSS允許您將結構(HTML)與設計...
    程式設計 發佈於2025-04-12
  • 如何修復\“常規錯誤:2006 MySQL Server在插入數據時已經消失\”?
    如何修復\“常規錯誤:2006 MySQL Server在插入數據時已經消失\”?
    How to Resolve "General error: 2006 MySQL server has gone away" While Inserting RecordsIntroduction:Inserting data into a MySQL database can...
    程式設計 發佈於2025-04-12
  • 為什麼我在Silverlight Linq查詢中獲得“無法找到查詢模式的實現”錯誤?
    為什麼我在Silverlight Linq查詢中獲得“無法找到查詢模式的實現”錯誤?
    查詢模式實現缺失:解決“無法找到”錯誤在Silverlight應用程序中,嘗試使用LINQ建立LINQ連接以錯誤而實現的數據庫”,無法找到查詢模式的實現。”當省略LINQ名稱空間或查詢類型缺少IEnumerable 實現時,通常會發生此錯誤。 解決問題來驗證該類型的質量是至關重要的。在此特定實例...
    程式設計 發佈於2025-04-12
  • 定制Seaborn圖表尺寸,完美打印輸出
    定制Seaborn圖表尺寸,完美打印輸出
    在海洋繪圖中自定義圖形大小用於打印 1。使用seaborn set_theme方法: RC參數允許您使用字典以英寸為單位指定所需的圖形大小。利用matplotlib rcparams: = 11.7,8.27 此方法允許直接操縱matplotlib的配置來設置圖形大小。 附加說明:探索seab...
    程式設計 發佈於2025-04-12
  • 如何使用PHP將斑點(圖像)正確插入MySQL?
    如何使用PHP將斑點(圖像)正確插入MySQL?
    essue VALUES('$this->image_id','file_get_contents($tmp_image)')";This code builds a string in PHP, but the function call fil...
    程式設計 發佈於2025-04-12

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3