Как компилятор C# создает этот длинный идентификатор в классах файлов?C#

Место общения программистов C#
Ответить
Anonymous
 Как компилятор C# создает этот длинный идентификатор в классах файлов?

Сообщение Anonymous »

Для следующих трех классов файлов:

Код: Выделить всё

file class MyClass
{
}

file class MyClass2
{
}

file class MyClass3
{
public int MyMember { get; init; }
}
Благодаря декомпиляции этого кода C# классы файлов теперь выглядят так:

Код: Выделить всё

internal class FFEAE62924BA736A3C9E8DE39EA3099D227B65B02C0A6BC7FECCB5FF0D5B9D8B3__MyClass
{
}

internal class FFEAE62924BA736A3C9E8DE39EA3099D227B65B02C0A6BC7FECCB5FF0D5B9D8B3__MyClass2
{
}

internal class FFEAE62924BA736A3C9E8DE39EA3099D227B65B02C0A6BC7FECCB5FF0D5B9D8B3__MyClass3
{
public int MyMember { get; init; }
}
Я понимаю, что — это имя исходного файла, в котором был определен класс файла, а MyClass... — это имя файла class.
Чего я не понимаю, так это очень длинного, казалось бы, идентификатора между ними:

Код: Выделить всё

FFEAE62924BA736A3C9E8DE39EA3099D227B65B02C0A6BC7FECCB5FF0D5B9D8B3
Насколько я понимаю, оно различается в зависимости от имени исходного файла, что удивительно, когда текст между двумя угловыми скобками уже кажется воспроизводимым роль.
Как компилятор C# создает этот идентификатор? Я не смог найти никакой информации об этом в Интернете. Кажется, недокументировано.

Подробнее здесь: https://stackoverflow.com/questions/785 ... le-classes
Ответить

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

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

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

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

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