代码之家  ›  专栏  ›  技术社区  ›  joeriks

在C中声明实例#

  •  0
  • joeriks  · 技术社区  · 13 年前

    Obj sb = new Obj(); 
    

    VB更便宜

    Dim sb as new Obj() 
    

    sb=Obj()
    
    3 回复  |  直到 13 年前
        1
  •  6
  •   Jon Skeet    13 年前

    从C#3开始你可以用 var 对于局部变量:

    var x = new Dictionary<string, string>();
    

    注意,这与Python声明非常不同:变量 x 仍然属于 Dictionary<string, string> dynamic

    这个特性部分是为了支持匿名类型而添加的,尽管它在其他情况下也非常有用;尤其是当您

    • 只有 应用于局部变量,而不是实例或静态变量
    • 编译器必须能够从赋值中推断出具体的类型;你不能写

      var x = null;
      

    • 记住可读性。如果指定的类型不明显,可以考虑使用显式声明
    • 如果以后要指定不太特定的表达式,则可能需要使用显式类型
    • 隐式类型有助于强调 代码正在执行而不是 怎样
        2
  •  3
  •   Marc Gravell    13 年前

    在C#3.0及更高版本中,现在可以使用var声明它们。

    var obj = new Obj();
    
        3
  •  0
  •   explorer    13 年前

     int[] array = { 1, 2, 3, 5, 6, 7, 8 };
    
    
        var q = from x in array
                let y = x.ToString()
                select y;
    
        foreach (var item in q)
        {
    
            Console.WriteLine(item.GetType());
    
        }
    

    1) 数组贴花的右侧仅显示数组初始值设定项,没有类型规范。过去需要数组类型规范。
    2) 变量q。。。。式中,q从右侧推断。
    3) 从x。。。。此范围变量的类型是从数组的元素类型推断出来的
    5) foreach(q中的var项)。。。同样,项的类型是推断的而不是显式声明的