在 if/else 语句中定义变量时,有没有办法使用 var ?

我尽可能使用 var,因为不必显式定义变量更容易。


但是当在if或switch语句中定义变量时,我必须明确定义它。


string message;

//var message; <--- gives error

if (error)

{

    message = "there was an error";

}

else

{

    message = "no error";

}


Console.WriteLine(message);

即使变量是在 if 或 switch 构造中定义的,有没有办法使用var?


慕工程0101907
浏览 258回答 3
3回答

Helenr

不。不过,在这种情况下,您可以使用条件:var&nbsp;message&nbsp;=&nbsp;error&nbsp;?&nbsp;"there&nbsp;was&nbsp;an&nbsp;error"&nbsp;:&nbsp;"no&nbsp;error";但除此之外:没有。您需要指定类型,或使用初始显式值。我建议不要使用后者,因为它删除了明确的分配检查。

慕妹3242003

在 Python 中,你可以做到这一点:if error:&nbsp; &nbsp; message = "there was an error";else:&nbsp; &nbsp; message = "no error";print(message);甚至:message = "there was an error" if error else "no error"这是可能的,因为 Python 不要求您定义变量:第一次为变量赋值时,它被创建,下一次被修改。但是,这不是 C# 的情况;正如您自己所确认的那样,有各种警告不允许您像在 Python 中一样进行编码。首先,您需要定义要使用的每个变量(及其类型,但请继续阅读),其次,还有作用域。在 C# 中,在if分支内创建的变量将不存在于该分支的末尾。好吧,然后是var。这是赋值运算符(“=”)右侧值类型的特殊快捷方式。这并不意味着“我稍后会告诉你变量的类型”。这意味着“变量的类型与我分配给它的表达式相同。”。换句话说,您只能var在定义变量的同时为变量赋值时使用。希望这可以帮助。
打开App,查看更多内容
随时随地看视频慕课网APP