«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Могут ли перечисления в C# сохранить несколько значений с одинаковой базовой постоянной, и каковы последствия?

Могут ли перечисления в C# сохранить несколько значений с одинаковой базовой постоянной, и каковы последствия?

Опубликовано в 2025-03-24
Просматривать:163

Can Enums in C# Hold Multiple Values with the Same Underlying Constant, and What are the Implications?

Несколько значений в объявлениях Enum: более глубокое погружение в CLR

, в отличие от контактов, перечисленные классифицируются как типы легких значений, которые представляют собой набор названных констант. Однако, что представляет вопрос, является интригующим наблюдением, что перечисления могут, по -видимому, разрешают назначать несколько значений одной и той же постоянной. За кулисами перечисления происходят из базового класса System.enum и по существу являются страдами с предопределенными постоянными значениями.

рассмотрим пример объявления Enum:

public enum color { Красный = 1, Синий = 1, Зеленый = 1 }

public enum Color
{
    Red = 1,
    Blue = 1,
    Green = 1
}

public struct color: system.enum { public const int red = 1; public const int blue = 1; public const int green = 1; }

public struct Color : System.Enum
{
    public const int Red = 1;
    public const int Blue = 1;
    public const int Green = 1;
}

, например:

color1 = (color) 1; Color2 = (color) enum.parse (typeof (color), "1");

как Color1, так и Color2 будут установлены на красное значение, потому что назначение первого значения является произвольным. Технически ни Color1, ни Color2 не назначены красным; Скорее, они сохраняют значение 1. Но при отображении красные-это то, что вы увидите. bool b = color.red == color.green;

Color color1 = (Color)1;
Color color2 = (Color)Enum.Parse(typeof(Color), "1");

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

]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3