Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Способы передачи аргументов методу





--вызов по значению-- В этом случае значение аргумента копируется в формальный параметр метода. Следовательно, изменения, вносимые в параметр метода, не оказывают никакого влияния на аргумент, используемый для вызова.

--вызов по ссылке-- В данном случае параметру метода передается ссылка на аргумент, а не значение аргумента. Это означает, что изменения, вносимые в параметр, будут оказывать влияние на аргумент, используемый для вызова метода.

По умолчанию в C# используется вызов по значению, а это означает, что копия аргумента создается и затем передается принимающему параметру.

//передача аргументов обычных типов по значению.

using System;

class Test

{

int c, d;

/*этот метод не оказывает никаноко влияния на

аргументы, используемые для его вызова. */

public void NoChange(int i,int j)

{

i = i+j;

j = -j;

}

}

class CallByValue

{

static void Main()

{

Test ob = new Test();

int a = 15, b = 20;

Console.WriteLine("a и b до вызова: {0} {1}", a, b);

ob.NoChange(a, b);

Console.WriteLine("a и b после вызова: " + a + " " + b);

}

}

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

//передача обьектов по ссылке.

using System;

class Test

{

public int a, b;

public Test(int i, int j)

{

a = i;

b = j;

}

/* Передать объект. Теперь переменные ob.а и ob.b из объекта,

используемого в вызове метода, будут изменены. */

public void Change(Test ob)

{

ob.a = ob.a + ob.b;

ob.b = -ob.b;

}

}

class CallByRef

{

static void Main()

{

Test ob = new Test(15, 20);

Console.WriteLine("ob.a и ob.b до вызова: " + ob.a + " " + ob.b);

ob.Change(ob);

Console.WriteLine("ob.a и ob.b после вызова: " + ob.a + " " + ob.b);

}

}

Date: 2015-09-02; view: 359; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию