TypeLoadexception Когда статическое свойство Struct T относится к T - почему это не ошибка компиляции?C#

Место общения программистов C#
Ответить
Anonymous
 TypeLoadexception Когда статическое свойство Struct T относится к T - почему это не ошибка компиляции?

Сообщение Anonymous »

Посмотрите на этот короткий код (можно запустить как программу.var a = new MyStruct();

public record struct MyStruct
{
public static HttpRequestOptionsKey OptionKey = new(nameof(MyStruct));
}
< /code>
Когда я его запускаю, я получаю: < /p>

Нечестное исключение. System.typeloadexception: не удалось загрузить тип 'mystruct' из сборки 'consoleapp2, version = 1.0.0.0, culture = нейтральный, publickeytoken = null'.
at Program. $ (String [] args) < /p>
Процесс, законченное с кодом extiT -134. Статическое свойство, ссылаясь на саму структуру, которая приводит к круговой зависимости, поскольку для загрузки статического поля структуры структура необходимо сначала загрузить в первую очередь ... это мое понимание, по крайней мере.var a = new MyStruct();

public record struct MyStruct
{
public static List OptionKey = new();
}
< /code>
Это не бросает. Что здесь происходит? Почему нет ошибки компиляции?

Подробнее здесь: https://stackoverflow.com/questions/796 ... snt-it-a-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»