* При перепечатке материалов ссылка на 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

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

Применение XML с объектами DataSet
Применение методов формы
Реализация специальных возможностей на этапе проектирования
События жизненного цикла формы
Свойства, доступные только для чтения или только для записи
Создание элементов управления
Двоичные файлы .NET
Создание формы
Cosmos – C# Open Source Managed Operating System
Тестирование элемента управления
Создание перегруженных методов
Рекурсия
Принципы дизайна интерфейса
Реализация полиморфизма через наследование
ToDoList 5.6.6
| .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 | Параметры. Регион сайта: Москва и Санкт-Петербург