我如何在 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 中的示例。