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

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