C# 7.0 使用下劃線忽略使用的變數
在 C# 7.0 支援使用下劃線忽略不使用的變數
這個方法用的比較多的是在 out 引數,如使用 int 的嘗試轉換函式
var str = "123"; if (int.TryParse(str, out var _)) { var n = _; }
編譯是不通過的,會出現 error CS0103: The name '_' does not exist in the current context
上面的程式碼還可以去掉 var 程式碼
var str = "123"; if (int.TryParse(str, out _)) { //var n = _; }
在 ValueTuple 也是很多的使用
var db = ("林德熙", "逗比"); var (lindexi, _) = db;
上面程式碼表示只拿出 lindexi 而 逗比是不拿出來的,雖然使用了下劃線,但是如果在下面要使用下劃線是無法編譯通過
從這個特性可以推出在辣麼大的使用,請看程式碼
Action<int> f = _ => { var n = 2; };
這樣寫表示不理會第一個引數,雖然這樣寫和下面程式碼是不等價的
Action<int> f = delegate { var n = 2; };
但是從約定上,使用下劃線表示忽略的程式碼