为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕工程0101907 2021-06-29 09:01:33
我尽可能使用 var,因为不必显式定义变量更容易。但是当在if或switch语句中定义变量时,我必须明确定义它。string message;//var message; <--- gives errorif (error){    message = "there was an error";}else{    message = "no error";}Console.WriteLine(message);即使变量是在 if 或 switch 构造中定义的,有没有办法使用var?
查看完整描述

3 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

不。不过,在这种情况下,您可以使用条件:

var message = error ? "there was an error" : "no error";

但除此之外:没有。您需要指定类型,或使用初始显式值。我建议不要使用后者,因为它删除了明确的分配检查。


查看完整回答
反对 回复 2021-07-03
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

在 Python 中,你可以做到这一点:


if error:

    message = "there was an error";

else:

    message = "no error";


print(message);

甚至:


message = "there was an error" if error else "no error"

这是可能的,因为 Python 不要求您定义变量:第一次为变量赋值时,它被创建,下一次被修改。


但是,这不是 C# 的情况;正如您自己所确认的那样,有各种警告不允许您像在 Python 中一样进行编码。首先,您需要定义要使用的每个变量(及其类型,但请继续阅读),其次,还有作用域。在 C# 中,在if分支内创建的变量将不存在于该分支的末尾。


好吧,然后是var。这是赋值运算符(“=”)右侧值类型的特殊快捷方式。这并不意味着“我稍后会告诉你变量的类型”。这意味着“变量的类型与我分配给它的表达式相同。”。换句话说,您只能var在定义变量的同时为变量赋值时使用。


希望这可以帮助。


查看完整回答
反对 回复 2021-07-03
  • 3 回答
  • 0 关注
  • 257 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信