C# 7.0 模式匹配与新的输出参数混合
C# 7.0 Pattern matching mixed with new out parameter
我的目标是在 Pattern matching 和 new out[= 的帮助下解析和打印传入变量16=] c# 7.0 中的变量。但是,该方法抱怨未初始化的局部变量 'i'。不确定我哪里出错了?
static void Main(string[] args)
{
var input = "23";
Print(input);
}
static void Print(object o)
{
if (o is int || (o is string && int.TryParse((string)o, out int i)))
Console.WriteLine(i.ToString());
}
i
不保证设置。如果 o is int
是 true
,则 if
的第二部分不会被执行。
你也必须在第一个条件中分配 i
:
if (o is int i || (o is string s && int.TryParse(s, out i))
{
Console.WriteLine(i.ToString());
}
我的目标是在 Pattern matching 和 new out[= 的帮助下解析和打印传入变量16=] c# 7.0 中的变量。但是,该方法抱怨未初始化的局部变量 'i'。不确定我哪里出错了?
static void Main(string[] args)
{
var input = "23";
Print(input);
}
static void Print(object o)
{
if (o is int || (o is string && int.TryParse((string)o, out int i)))
Console.WriteLine(i.ToString());
}
i
不保证设置。如果 o is int
是 true
,则 if
的第二部分不会被执行。
你也必须在第一个条件中分配 i
:
if (o is int i || (o is string s && int.TryParse(s, out i))
{
Console.WriteLine(i.ToString());
}