C# - 类,构造函数和Resharper - 澄清

now*_*ed. 1 .net c# resharper visual-studio-2010

我在visual studio中使用Resharper工具

考虑下面写的一个非常简单的类.

class Test()
{

   //constructors do not have any return type.   
   Test()
   {
      System.Console.WriteLine("Hello World!");
   } 

   static Test()
   {
        System.Console.WriteLine("Hello World in Static constructors");
   }

   public void A()
   {
      System.Console.WriteLine("A simple function in a class");
   }

}


class Program
  {
    static void Main(string[] args)
    {
        var asa = new Test(); //Implicitly Typed local variables.
        asa.A();

    }
}
Run Code Online (Sandbox Code Playgroud)

使用var(编译器必须从初始化语句右侧的表达式推断变量的类型).

我有一些澄清问题,他们在下面.

  1. 编译器的额外负担?
  2. 一个班级可以拥有多少个构造函数?
  3. 为什么静态构造函数首先调用?(我通过断点检查了吗?)
  4. 为什么不测试asa = new Test(); Resharper不是首选的?
  5. 首先使用Resharper作为初学者真的是个好主意吗?(我自己是C和.net编程的新手!)

提前致谢.

Jon*_*eet 7

  1. 编译器的任何额外负担基本上都是无关紧要的 - 它不应该是您决定是否使用的一部分var.正如评论中所指出的,当您使用显式声明的变量时,编译器可能需要稍微多一些工作......但同样,它并不重要.

  2. 一个类可以有任意数量的构造函数......虽然它很快就会变得难以处理.

  3. 在第一次使用类之前,静态构造函数将被调用一次(无论是通过静态方法还是构造函数调用).阅读C#规范了解更多详情 - C#5规范的第10.12节包括:

    封闭类类型的静态构造函数在给定的应用程序域中最多执行一次.静态构造函数的执行由应用程序域中发生的以下第一个事件触发:

    • 创建类类型的实例.
    • 引用类类型的任何静态成员.
  4. 您可以将ReSharper配置为建议替代方案,或将其视为警告等.在此方面,您可以认为它应该可行.