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



Download 6,27 Mb.
Pdf ko'rish
bet149/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   145   146   147   148   149   150   151   152   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C


Глава.6 .Основные.сведения.о.членах.и.типах
Если в компании 
CompanyB
решат, что семантика метода 
EstablishConnection
в этих двух типах отличается, компилятору будет указано, что «правильными» 
являются методы 
Dial
и 
EstablishConnection
, определенные в 
BetterPhone

и они не связаны с одноименными методами из базового типа 
Phone
. Для этого 
разработчики компании 
CompanyB
добавляют ключевое слово 
new
в определение 
EstablishConnection
:
namespace CompanyB {
public class BetterPhone : CompanyA.Phone {
// Ключевое слово 'new' оставлено, чтобы указать,
// что этот метод не связан с методом Dial базового типа
public new void Dial() {
Console.WriteLine("BetterPhone.Dial");
EstablishConnection();
base.Dial();
}
// Ключевое слово 'new' указывает, что этот метод
// не связан с методом EstablishConnection базового типа
protected new virtual void EstablishConnection() {
Console.WriteLine("BetterPhone.EstablishConnection");
// Выполнить действия для установления соединения
}
}
}
Здесь ключевое слово 
new
заставляет компилятор сгенерировать метадан-
ные, информирующие CLR, что определенные в 
BetterPhone
методы 
Dial
и 
EstablishConnection
следует рассматривать как новые функции, введенные 
в этом типе. При этом CLR будет известно, что одноименные методы типов 
Phone
и 
BetterPhone
никак не связаны.
При выполнении того же приложения (метода 
Main
) выводится информация:
BetterPhone.Dial
BetterPhone.EstablishConnection
Phone.Dial
Phone.EstablishConnection
Отсюда видно, что, когда 
Main
обращается к методу 
Dial
, вызывается вер-
сия, определенная в 
BetterPhone
. Далее 
Dial
вызывает виртуальный ме-
тод 
EstablishConnection
, также определенный в 
BetterPhone
. Когда метод 
EstablishConnection
типа 
BetterPhone
возвращает управление, вызывается 
метод 
Dial
типа 
Phone
, вызывающий метод 
EstablishConnection
этого типа. Но 
поскольку метод 
EstablishConnection
в типе 
BetterPhone
помечен ключевым 
словом 
new
, вызов этого метода не считается переопределением виртуального 
метода 
EstablishConnection
, исходно определенного в типе 
Phone
. В результате 
метод 
Dial
типа 
Phone
вызывает метод 
EstablishConnection
, определенный в типе 
Phone
, что и требовалось от программы.



Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   145   146   147   148   149   150   151   152   ...   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