C# 7支持弃元变量,系统不为该变量分配存储空间,所以弃元可减少内存分配。 变量名为下划线_,表示该变量为一个弃元。
Person p = new Person("John", "Quincy", "Adams", "Boston", "MA");
var (fName, _, city, _) = p;
Console.WriteLine($"Hello {fName} of {city}!");
switch和if中使用is匹配弃元
if (obj is var _)
Console.WriteLine($"Some object type without format information");
out使用弃元
if (DateTime.TryParse(dateString, out _))
Console.WriteLine($"'{dateString}': valid");
独立弃元忽略任何变量。 以下示例使用独立弃元来忽略异步操作返回的 Task 对象,并抑制操作即将完成时所引发的异常。
using System;
using System.Threading.Tasks;
public class Example
{
public static void Main()
{
ExecuteAsyncMethods().Wait();
}
private static async Task ExecuteAsyncMethods()
{
Console.WriteLine("About to launch a task...");
_ = Task.Run(() => { var iterations = 0;
for (int ctr = 0; ctr < int.MaxValue; ctr++)
iterations++;
Console.WriteLine("Completed looping operation...");
throw new InvalidOperationException();
});
await Task.Delay(5000);
Console.WriteLine("Exiting after 5 second delay");
}
}