如何在c#中使用var#{}

时间:2017-05-27 19:18:40

标签: c# if-statement while-loop var

我如何使用c#over {}中的var,如:

if
{
   var test;
   while
   {
      test = "12345";
      //test is defined
   } 
   var test2 = test;
   //test is undefined
}

我不明白。

3 个答案:

答案 0 :(得分:5)

您不能将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
}

答案 1 :(得分:1)

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
                }

答案 2 :(得分:1)

您可以使用object类型而不是var,然后将null指定为初始化。它可以根据您的意愿适用于string, int

请查看以下内容:

if
{
    object test = null;
    while
    {
        test = "12345";
        //test is defined
    } 
    var test2 = test;
    //test is undefined
}

请查看DotNetFiddle中的示例。