我如何在 c# 中使用 var over {}
How can i use a var in c# over {}
我如何在 c# 中使用 var over {},例如:
if
{
var test;
while
{
test = "12345";
//test is defined
}
var test2 = test;
//test is undefined
}
没看懂
您不能将 var
用于未初始化的变量,因为在这种情况下编译器将不知道真实类型。 var
是语法糖 - 编译器应决定使用哪种类型,在 IL 代码中您将看到真实类型。
如果你真的想要 var
你应该用某种类型的任何值初始化它(在你的情况下 - string
):
if
{
var test = String.Empty; // initialize it - now compiler knows type
while
{
test = "12345";
//test is defined
}
var test2 = test;
//test is undefined
}
Var 不是类型,var 是一个关键字,它告诉计算机决定哪种类型适合您的值。
您可以改用这个:
if
{
var test = "placeholder";
while
{
test = "12345";
//test is defined
}
var test2 = test;
//test is undefined
}
或者更好的是,从一开始就声明一个字符串,当您在声明时不知道需要什么类型时,可以使用 var,当您知道类型时,您最好只是用正确的类型声明引用。
编辑:
这段代码对我来说很好用(请注意,在您的原始代码中您缺少条件
if (true)
{
string test;
while (true)
{
test = "12345";
//test is defined
}
var test2 = test;
//test is undefined
}
您可以使用 object
类型而不是 var
然后分配 null
作为初始化。如您所愿,它将适用于 string, int
。
请检查以下内容:
if
{
object test = null;
while
{
test = "12345";
//test is defined
}
var test2 = test;
//test is undefined
}
请查看 DotNetFiddle 中的示例。
我如何在 c# 中使用 var over {},例如:
if
{
var test;
while
{
test = "12345";
//test is defined
}
var test2 = test;
//test is undefined
}
没看懂
您不能将 var
用于未初始化的变量,因为在这种情况下编译器将不知道真实类型。 var
是语法糖 - 编译器应决定使用哪种类型,在 IL 代码中您将看到真实类型。
如果你真的想要 var
你应该用某种类型的任何值初始化它(在你的情况下 - string
):
if
{
var test = String.Empty; // initialize it - now compiler knows type
while
{
test = "12345";
//test is defined
}
var test2 = test;
//test is undefined
}
Var 不是类型,var 是一个关键字,它告诉计算机决定哪种类型适合您的值。
您可以改用这个:
if
{
var test = "placeholder";
while
{
test = "12345";
//test is defined
}
var test2 = test;
//test is undefined
}
或者更好的是,从一开始就声明一个字符串,当您在声明时不知道需要什么类型时,可以使用 var,当您知道类型时,您最好只是用正确的类型声明引用。
编辑: 这段代码对我来说很好用(请注意,在您的原始代码中您缺少条件
if (true)
{
string test;
while (true)
{
test = "12345";
//test is defined
}
var test2 = test;
//test is undefined
}
您可以使用 object
类型而不是 var
然后分配 null
作为初始化。如您所愿,它将适用于 string, int
。
请检查以下内容:
if
{
object test = null;
while
{
test = "12345";
//test is defined
}
var test2 = test;
//test is undefined
}
请查看 DotNetFiddle 中的示例。