91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#9的Lambda升級了哪些特性

發布時間:2021-11-24 09:14:07 來源:億速云 閱讀:120 作者:iii 欄目:大數據

本篇內容主要講解“C#9的Lambda升級了哪些特性”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#9的Lambda升級了哪些特性”吧!

C# 9 的 Lambdas 將會有一個小的升級,包含兩個新特性。這兩個新特性都不會改變代碼的編寫方式,但都體現了開發人員的意圖。

Lambda 丟棄參數允許開發人員顯式指定某些參數是不需要的,這樣可以防止編譯器對未使用的參數發出錯誤警告。事件處理器就可能出現這種情況,因為事件處理器有可能不需要知道發送方是誰,有不需要知道對象參數是什么。

button1.Click += (s, e) => ShowDialog();

通過替換參數,很容易就知道變量未被使用。

button1.Click += (_, _) => ShowDialog();

如果有必要,可以使用類型。

var handler = (object _, EventArgs _) => ShowDialog();

靜態匿名函數可作為無法捕捉本地變量(包括參數)的Lambda 或匿名函數。下面這個示例來自 最初的提議。

 int y = 10; someMethod(x => x + y); // 捕捉 'y', 導致不必要的資源分配.

在 C#中,引用本地變量的匿名函數需要分配一個臨時對象。本地參數會被移出方法,并移入到對象中,在當前執行的函數結束后,它將繼續存在。這是必要的,因為匿名函數存在的時間可能比創建它的函數要長。

通過添加 static 關鍵字來表明匿名函數阻止這種內存分配。

int y = 10; someMethod(static x => x + y); // 錯誤!

為了修復這個錯誤,需要將變量 y 改成常量或靜態字段。

const int y = 10; someMethod(static x => x + y); // 好了 :-)

以下是該特性的主要規則:

  • 靜態匿名函數無法從包含作用域捕獲到狀態。因此,局部變量、參數和包含作用域內的參數在靜態匿名函數中是不可用的。

  • 靜態匿名函數無法通過隱式或顯式 this 或 base 引用來引用實例成員。

  • 靜態匿名函數可以引用包含作用域內的靜態成員。

  • 靜態匿名函數可以引用包含作用域內的常量定義。

  • 在靜態匿名函數中的 nameof() 可以引用包含作用域內的局部變量、參數,或者 this 或 base 函數。

到此,相信大家對“C#9的Lambda升級了哪些特性”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广东省| 浦城县| 大庆市| 瑞安市| 芜湖县| 客服| 隆昌县| 郑州市| 敦化市| 临武县| 三都| 蛟河市| 丹阳市| 台山市| 达孜县| 财经| 洮南市| 民县| 平昌县| 祥云县| 奉节县| 荣成市| 闽清县| 英超| 武穴市| 诏安县| 武宣县| 滨海县| 桃园县| 长垣县| 大安市| 吴忠市| 永定县| 甘洛县| 五峰| 舞阳县| 旅游| 凌海市| 勐海县| 翁牛特旗| 百色市|