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



Download 6,27 Mb.
Pdf ko'rish
bet182/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   178   179   180   181   182   183   184   185   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

ВниМание
Не.путайте.ключевые.слова.dynamic.и.var .Объявление.локальной.переменной.с.клю-
чевым.слово.var.является.не.более.чем.синтаксическим.сокращением,.заставляющим.
компилятор.определить.тип.данных.по.выражению .Данное.ключевое.слово.служит.
только.для.объявления.локальных.переменных.внутри.метода,.в.то.время.как.клю-
чевое.слово.dynamic.используется.для.локальных.переменных,.полей.и.аргументов .
Невозможно.привести.выражение.к.типу.var,.но.такая.операция.вполне.допустима.
для.типа.dynamic .Переменные,.объявленные.с.ключевым.словом.var,.должны.ини-
циализироваться.явно,.что.не.обязательно.для.переменных.типа.dynamic .Более.
подробную.информацию.о.динамическом.типе.вы.найдете.в.главе.5 


251
Передача.параметров.в.метод.по.ссылке
Передача параметров в метод по ссылке
По умолчанию CLR предполагает, что все параметры методов передаются по 
значению. При передаче объекта ссылочного типа методу передается ссылка (или 
указатель) на этот объект. То есть метод может изменить переданный объект, влияя 
на состояние вызывающего кода. Если параметром является экземпляр значимого 
типа, методу передается его копия. В этом случае метод получает собственную 
копию объекта, а исходный экземпляр сохраняется неизменным.
ВниМание
Следует.знать.тип.каждого.объекта,.передаваемого.методу.в.качестве.параметра,.
поскольку.манипулирующий.параметрами.код.может.существенно.различаться.в.за-
висимости.от.типа.параметров 
CLR также позволяет передавать параметры по ссылке, а не по значению. В C# 
это делается с помощью ключевых слов 
out
и 
ref
. Оба заставляют компилятор 
генерировать метаданные, описывающие параметр как переданный по ссылке. 
Компилятор использует эти метаданные для генерирования кода, передающего 
вместо самого параметра его адрес.
С точки зрения CLR, ключевые слова 
out
и 
ref
не различаются, то есть для них 
генерируются одинаковый IL-код, а метаданные отличаются всего одним битом, 
указывающим, какое ключевое слово было использовано при объявлении метода. 
Однако компилятор C# различает эти ключевые слова при выборе метода, исполь-
зуемого для инициализации объекта, на который указывает переданная ссылка. 
Если параметр метода помечен ключевым словом 
out
, вызывающий код может не 
инициализировать его, пока не вызван сам метод. В этом случае вызванный метод 
не может прочитать значение параметра и должен записать его, прежде чем вернуть 
управление. Если же параметр помечен ключевым словом 
ref
, вызывающий код 
должен инициализировать его перед вызовом метода, а вызванный метод может 
как читать, так и записывать значение параметра.
Поведение ссылочных и значимых типов при использовании ключевых слов 
out
и 
ref
различается значительно. Вот как это выглядит в случае значимого типа:
public sealed class Program {
public static void Main() {
Int32 x; // Инициализация x
GetVal(out x); // Инициализация x не обязательна
Console.WriteLine(x); // Выводится 10
}
private static void GetVal(out Int32 v) {
v = 10; // Этот метод должен инициализировать переменную V
}
}


252
Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   178   179   180   181   182   183   184   185   ...   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