2015-11-15 2 views
0

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

Я делал простое приложение для пинг-понга, он работал правильно, но внезапно кусок кода начал бросать эту ошибку. Затем я изменил основную форму игры на форму необработанного окна, но авария все еще существует.

Form form = new Form(); 

static void Main() { 
    Application.Run(form); //<-- Throwing the Crash 
} 

Следующее изображение говорит все, я очень ценю любую помощь, даже более мелкую. Спасибо ^^

The Error thrown

+0

Пытались ли вы пошагового код в форме? – DavidG

+0

Что вы подразумеваете под степпинг? Я использую форму необработанных окон без изменений. В любом случае, сегодня это хорошо работало, но теперь он рушится, я не внес никаких изменений ни в форму окна, ни в форму, которую я использовал раньше. –

ответ

-1

Линия

Form form = new Form(); 

выполняется при первом доступе переменной формы. В этом случае в этой строке:

Application.Run(form); 

Так конструктор класса Form threws Обнаружили ошибку

+0

Это неправда. – DavidG

+0

Хм, нет, это не проблема. Я тоже пробовал объявить поле формы в методе Main, все тот же крах. Спасибо anyways ^.^ –

+0

'' Таким образом, конструктор класса Form порождает ошибку «' - Тогда почему ошибка говорит, что она бросается классом «Программа»? – David

2

Посмотрите на сообщение об ошибке. Инициализатор типа для Program - это то, что бросает исключение. Этот тип инициализатора имеет несколько вещей, которые происходят, в том числе:

new StartScreen() 
new Settings() 
new SettingsManager() 

и, возможно, более, что мы не видим на скриншоте.

Что-то в инициализаторе типа для Program не работает. Изучите исключение для получения дополнительной информации. Кроме того, переместите часть этой логики на конструкторы (статические или экземпляры по мере необходимости), чтобы облегчить отладку.

(Или, как я хотел бы сказать, TypeInitializationException это причудливый способ сказать: «Вы слишком много происходит за пределами методов.»)

+0

Спасибо большое! проблема была в «новых настройках()». Раньше у меня были только настройки и settingsManager-конструктор как статические, я добавил других, которые пытались исправить эту ошибку. –

Смежные вопросы