* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Параметры
7 февраля 2009

Метод может иметь один или несколько параметров. Параметр — это аргумент, пе-
редаваемый методу другим методом, который его вызывает. При объявлении мето-
да список параметров указывают после его имени в круглых скобках, при этом для
каждого параметра необходимо указать его тип. Вот пример метода с параметрами:
Visual Basic .NET
Public Sub DisplayName (ByVal name As String, ByVal age As Byte)
Console.WriteLine ("Hello " & name & ". You are " & _
age.ToString & " years old.")
End Sub
Visual C#
public void DisplayName (string name, byte age)
Console.WriteLine ("Hello " + name + ". You are " + age.ToString () +
"years old.");
У этого метода два параметра: один типа String, с локальным именем пате, а вто-
рой, age, — типа Byte. Их область видимости ограничена методом, вне которого пе-
ременные не доступны. Подробнее об области видимости — на занятии 5.
Есть два способа передачи параметров — по значению и по ссылке. По умолчанию
в .NET Framework параметры передаются по значению. Это означает, что когда пе-
ременная передается как параметр, создается новая переменная того же типа, в
которую копируется значение исходной переменной. Вызываемому методу переда-
ется новая переменная, поэтому никакие изменения, вносимые методом в пере-
данное ему значение, не затрагивают исходную переменную. Хотя этот способ пе-
редачи параметров принят по умолчанию, в Visual Basic .NET разрешается явно
указать его при помощи ключевого слова ByVal.
Если параметр передают по ссылке, то вместо значения переменной методу пе-
редается ссылка на область памяти, в которой оно хранится. Если вызванный ме-
тод изменит значение, переданное ему как параметр, фактически он изменит зна-
чение исходной переменной. Чтобы указать, что параметр передается по ссылке, в
Visual Basic .NET применяют ключевое слово ByRef, а в Visual C# — ref. Далее пока-
заны примеры передачи параметров по ссылке и по значению:
Visual Basic .NET
Public Sub Demol ()
Dim x, у As Integer
x = 15
у = 20
1 Вызвать метод Oemo2, объявленный ниже.
Derno2 (x, у)
Каковы значения х и у?
MessageBox.Show ("X = " & x.ToString & "Y = " & y.ToString)
End Sub
Public Sub Demo2 (ByVal p1 As Integer, ByRef p2 As Integer)
p1 = p1 + p2
p2 = p2 + p1
End Sub
Visual C#
public void Demol (J
{
int x,y;
x = 15;
У = 20;
// Вызвать метод Demo2, объявленный ниже.
Demo2 {x,ref у);
// Каковы значения х и у?
System.Windows.Forms.MessageBox.Show ("X = " + x.ToString () +
"Y = " + y.ToString ());
\
public void Oemo2 (int p1, ref int p2)
!
р1 = р1 + р2;
р2 = р2 + р1;
I
Здесь создаются две переменные — х и у, которым присваиваются начальные
значения. После этого они передаются другому методу в качестве параметров, при-
чем х передается по значению, а у — по ссылке. В вызванном методе х и у представ-
лены соответственно переменными р! и р2. Поскольку параметр р! передан по зна-
чению, это просто копия переменной х, и все действия, выполняемые над pi, ни-
как не влияют на значение переменной х. После завершения метода Demo2 пере-
менная р! выходит из области видимости, а занятая ею память освобождается. Ина-
че обстоит дело с параметром р2: в нем нет, собственно, значения — только ссылка
на область памяти, в которой хранится значение переменной у, поэтому при вы-
полнении команды р2 =р2 + р! изменяется значение, на которое указывает р2. Та-
ким образом, после завершения метода Demolзначение хне меняется (15), а значе-
ние у станет равно 55.
Заметьте, что для параметра ссылочного типа не имеет значения, как он переда-
ется — по ссылке или по значению, результат окажется одним и тем же. В обоих
случаях все действия, выполненные над параметром, отразятся на объекте, кото-
рый был передан в качестве параметра.
Выходные параметры
В Visual C# допускается применение выходных параметров, отсутствующих в Visual
Basic .NET. Выходной параметр — это тот, который вызванный метод передает (воз-
вращает) вызвавшему его методу. Выходные параметры удобно использовать в ме-
тодах, которые должны возвращать несколько значений.
Выходные параметры обозначаются ключевым словом out, всегда передаются по
ссылке и не требуют инициализации перед использованием. Вот пример использо-
вания выходных параметров:
Visual C#
public void aWord (out string Word)
!
Word = "Mambo";
}
public void ShowWord ()
{
string Word;
aWord (out Word);
Console.Writeline ("The word of the day is " + Word);
}
Здесь метод ShowWord вызывает метод aWord, у которого есть один выходной
параметр Word. Присваивая значение выходному параметру Word, метод сИ^ог^тем
самым устанавливает значение переменной Word метода ShowWord.
Необязательные параметры
В Visual Basic .NET у метода могут быть необязательные параметры, а в Visual C#
это не допускается. Необязательные параметры обозначаются ключевым словом
Optional и замыкают список параметров в объявлении метода. Кроме того, для нео-
бязательных параметров необходимо определить значения по умолчанию. Вот при-
мер, иллюстрирующий использование необязательных параметров:
Visual Basic .NET
Public Sub Cook (ByVal time as Integer, Optional ByVal temp As
Integer = 350)
1 Сюда помещают реализацию метода
End Sub

Теги: .NET

Статьи по теме:

Типы данных .NET Framework
Сокрытие членов базового класса в Visual C#
Создание типизированного объекта DataSet с помощью XML Designer
Создание дополнительных типов объектов Doughnut
Модификация и обновление данных
Объекты, члены и абстрагирование
Решения .NET
Пространства имен System.Drawing
Перечисления CTS
Конструкторы и деструкторы
Примеси (mixin)
Языки программирования .NET
Специальные возможности и элементы управления Windows Forms
Структура .NET-приложений
Создание элементов управления
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Параметры. Регион сайта: Москва и Санкт-Петербург