使用静态构造函数时,Visual Studio的intellisense会中断

时间:2015-06-28 20:35:00

标签: c# .net visual-studio-2013 struct static-constructor

我对visual studio的intellisense有疑问。 每当我在结构中创建一个C#静态构造函数时,visual studio的intellisense在尝试调用构造函数时就会中断。 它似乎无法找到一个甚至不是默认构造函数的构造函数。 有谁知道我为什么会遇到这个问题?

    public Triangle(int aX, int aY, int bX, int bY, int cX, int cY)
    {
        A = new Point(aX, bY);
        B = new Point(bX, bY);
        C = new Point(cX, cY);
    }

    public Triangle(Point a, Point b, Point c)
    {
        A = a;
        B = b;
        C = c;
    }

    public Triangle(Triangle value)
    {
        A = value.A;
        B = value.B;
        C = value.C;
    }

    static Triangle()
    {
        Empty = new Triangle(0, 0, 0, 0, 0, 0);
    }

No intellisense

1 个答案:

答案 0 :(得分:4)

您不能直接调用static constructor,并且会在创建第一个实例或引用任何静态成员之前自动调用它来初始化类型。

以下是静态构造函数规范的摘要

  
      
  • 静态构造函数不接受访问修饰符或具有参数。
  •   
  • 在创建第一个实例或任何静态成员之前,会自动调用静态构造函数来初始化类   引用。
  •   
  • 无法直接调用静态构造函数。
  •   
  • 用户无法控制程序中何时执行静态构造函数。
  •   
  • 静态构造函数的典型用法是当类使用日志文件并使用构造函数将条目写入此文件时。
  •   
  • 当构造函数可以调用LoadLibrary时,静态构造函数在为非托管代码创建包装类时也很有用   方法
  •   
  • 如果静态构造函数抛出异常,则运行时将不会再次调用它,并且该类型将保持未初始化状态   程序所在的应用程序域的生命周期   运行
  •   

关于Visual Studio中的问题:

我测试过,一切正常。 enter image description here