1

我对视觉工作室的智能感知有疑问。每次我C#在结构中创建静态构造函数时,Visual Studio 的智能感知在尝试调用构造函数时都会中断。似乎它找不到构造函数,甚至没有默认构造函数。有谁知道我为什么会遇到这个问题?

    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);
    }

没有智能感知

4

1 回答 1

4

您不能直接调用静态构造函数,它会在创建第一个实例或引用任何静态成员之前自动调用以初始化类型。

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

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

关于 Visual Studio 中的问题:

我对其进行了测试,一切正常。 在此处输入图像描述

于 2015-06-28T20:45:43.633 回答