2015-06-28 2 views
1

У меня проблема с intellisense визуальной студии. Каждый раз, когда я создаю статический конструктор C# в структуре, intellisense визуальной студии ломается при попытке вызвать конструктор. Кажется, он не может найти конструктор даже не по умолчанию. Кто-нибудь знает, почему у меня возникает эта проблема?Исключительная работа intellisense 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); 
    } 

No intellisense

+0

Не могли бы вы вывести код для * статического конструктора *. –

+0

где код? – dotctor

+0

Вы должны прочитать [статический конструктор] (https://msdn.microsoft.com/en-us/library/aa645612%28v=vs.71%29.aspx). –

ответ

4

Вы не можете напрямую позвонить static constructor, и она автоматически вызывается для инициализации типа до того, как первый экземпляр создается или ссылки любые статические члены.

Вот краткое изложение статических спецификаций конструктора

  • Статический конструктор не принимает модификаторы доступа или имеют параметры.
  • Статический конструктор вызывается автоматически, чтобы инициализировать класс до создания первого экземпляра, или любые статические члены ссылаются на .
  • Статический конструктор нельзя вызвать напрямую.
  • Пользователь не может контролировать, когда статический конструктор выполняется в программе.
  • Типичное использование статических конструкторов - это когда класс использует файл журнала, а конструктор используется для записи записей в этот файл.
  • Статические конструкторы также полезны при создании классов-оболочек для неуправляемого кода, когда конструктор может вызвать метод LoadLibrary .
  • Если статический конструктор создает исключение, среда выполнения не будет вызывать его второй раз, и тип останется неинициализированным для времени жизни домена приложения, в котором работает ваша программа .

О выпуске в Visual Studio:

Я проверил его и все работает отлично. enter image description here

+0

Я знаю, как работает статический конструктор, но он, похоже, блокирует другие конструкторы, которые у меня есть в моей структуре, из-за появления в визуальной студии intellisense. – Arzana

+0

У меня только эта ошибка в visual studio 2013 и только с structs. Может быть, потому, что мои настройки установлены на C++? – Arzana

+1

Что такое ошибка? можете ли вы опубликовать скриншот и краткую информацию об ошибке? – dotctor