В C# 7.0 появились var-шаблоны которые судя по документации всегда trueи нужны для создания новой переменной с таким же типом и значением.
Накидал тестовый метод, штука действительно работает.
private void TestPattern(object k)
{
if (k is var test) Console.WriteLine("Result: " + test.GetType() + " " + test);
Console.ReadKey();
}
Однако нахожу ее абсолютно бессмысленной. Более того, код как по мне жутко не читабельный и не очевидный.
Так для каких ситуаций собственно нужен этот шаблон?
Это может быть применимо для введения временной переменной в выражении, например:
public void VarPattern(IEnumerable<string> s)
{
if (s.FirstOrDefault(o => o != null) is var v
&& int.TryParse(v, out var n))
{
Console.WriteLine(n);
}
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей