我的目标是在模式 匹配和c#7.0中的new out变量的帮助下解析和打印传入的变量.然而,该方法抱怨未初始化的局部变量'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());
}
Run Code Online (Sandbox Code Playgroud)
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());
}
Run Code Online (Sandbox Code Playgroud)