Несколько значений в объявлениях 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