Net framework 5, а также среды Visual Studio 2012 и C#


Перечислимые.типы типов, избавляя вас от необходимости использовать отражение. Мы поговорим  о них подробно чуть позже. ВниМание



Download 6,27 Mb.
Pdf ko'rish
bet296/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   292   293   294   295   296   297   298   299   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

405
Перечислимые.типы
типов, избавляя вас от необходимости использовать отражение. Мы поговорим 
о них подробно чуть позже.
ВниМание
Описанные.перечислимым.типом.символы.являются.константами .Встречая.в.коде.
символическое.имя.перечислимого.типа,.компилятор.заменяет.его.числовым.зна-
чением .В.результате.определяющая.перечислимый.тип.сборка.может.оказаться.не-
нужной.во.время.выполнения .Но.если.в.коде.присутствует.ссылка.не.на.определенные.
перечислимым.типом.символические.имена,.а.на.сам.тип,.присутствие.сборки.на.
стадии.выполнения.будет.обязательным .То.есть.возникает.проблема.версий,.связан-
ная.с.тем,.что.символы.перечислимого.типа.являются.константами,.а.не.значениями,.
предназначенными.только.для.чтения .Эта.тема.подробно.освещена.в.главе.7 
К примеру, для типа 
System.Enum
существует статический метод 
GetUnderlyingType

а для типа 
System.Type
— экземплярный метод 
GetEnumUnderlyingType
:
public static Type GetUnderlyingType(Type enumType); // Определен 
// в типе System.Enum
public Type GetEnumUnderlyingType(); // Определен в типе System.Type
Оба этих метода возвращают базовый тип, используемый для хранения значения 
перечислимого типа. В основе любого перечисления лежит один из основных типов, 
например 
byte

sbyte

short

ushort

int
(именно он используется в C# по умол-
чанию), 
uint

long
и 
ulong
. Все эти примитивные типы C# имеют аналоги в FCL. 
Однако компилятор C# пропустит только примитивный тип; задание базового 
класса FCL (например, 
Int32
) приведет к сообщению об ошибке (ошибка CS1008: 
ожидается тип 
byte

sbyte

short

ushort

int

uint

long
или 
ulong
):
error CS1008: Type byte, sbyte, short, ushort, int, uint, long, or ulong expected
Вот как должно выглядеть на C# объявление перечисления, в основе которого 
лежит тип 
byte
(
System.Byte
):
internal enum Color : byte {
White,
Red,
Green,
Blue,
Orange
}
Если перечисление 
C o l o r
определено подобным образом, метод 
GetUnderlyingType
вернет следующий результат:
// Эта строка выводит "System.Byte"
Console.WriteLine(Enum.GetUnderlyingType(typeof(Color)));
Компилятор C# считает перечислимые типы примитивными, поэтому для 
операций с их экземплярами применяются уже знакомые нам операторы (
==

!=



406
Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   292   293   294   295   296   297   298   299   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish