Какие элементы языка программирования C# можно объявлять статическими? 3



Download 76,35 Kb.
bet10/13
Sana25.02.2022
Hajmi76,35 Kb.
#283064
TuriПрограмма
1   ...   5   6   7   8   9   10   11   12   13
Bog'liq
Аббосова Сарвиноз оригинал №1

Пример 2. Фрагмент кода, демонстрирующий использование оператора is для определения типа вычисляемого выражения.
// динамическая идентификация типов
// определение типа выражения
float x;
// перед использованием, переменные должны быть иницилизированы
x = 3.9f;
// проверка, есть ли выражение типа double
if ((2.5 + x) is double)
Console.WriteLine("Выражение есть типа double");
else
Console.WriteLine("Выражение не имеет тип double");
// Результат - "Выражение есть типа double"
// Определение типа выражения 2*2
if ((2 * 2) is int)
Console.WriteLine("Тип int");
else
if ((2 * 2) is uint)
Console.WriteLine("Тип uint");
else
if ((2 * 2) is long)
Console.WriteLine("Тип long");
else
if ((2 * 2) is byte)
Console.WriteLine("Тип byte");
// Результат - "Тип int"

Как работает оператор is в случае наследования классов? Примеры


Преимущества использования динамической идентификации типов в особенности проявляются в случае наследования классов. Если есть ссылка на базовый класс, то по этой ссылке можно определить тип объекта в иерархии наследования.


Пример 1. Пусть заданы 2 класса, которые образовывают иерархию. Класс BaseClass есть базовой. Класс DerivedClass есть производным от класса BaseClass. С помощью оператора is определяется принадлежность объекта класса заданному типу и совместимость объекта класса с заданным типом.
// базовый класс
class BaseClass
{
public int d;
}
// производный класс от базового класса
class DerivedClass:BaseClass
{
public int dd;
}
Ниже демонстрируется использование объектов базового и производного классов в сочетании с оператором is
// создание объектов классов BaseClass и DerivedClass
BaseClass bc = new BaseClass();
DerivedClass dc = new DerivedClass();
// использование объектов bc и dc
if (bc is BaseClass)
Console.WriteLine("Объект bc есть типа BaseClass");
if (bc is DerivedClass)
Console.WriteLine("Объект bc есть совместим с DerivedClass");
if (dc is BaseClass)
Console.WriteLine("Объект dc есть совместим с BaseClass");
if (dc is DerivedClass)
Console.WriteLine("Объект dc есть типа DerivedClass");
В результате выполнения вышеприведенного кода на экран будет выведено
Объект bc есть типа BaseClass
Объект dc есть совместим с BaseClass
Объект dc есть типа DerivedClass
В строке
...
if (bc is DerivedClass)
Console.WriteLine("Объект bc есть совместим с DerivedClass");
...
значение условия в операторе if равное false, так как объект базового класса не может быть совместим с производным классом. Однако, наоборот, объект производного класса есть совместим с базовым, так как, производный класс расширяет возможности базового класса.

Download 76,35 Kb.

Do'stlaringiz bilan baham:
1   ...   5   6   7   8   9   10   11   12   13




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