Метод представляет собой блок кода, содержащий набор инструкций. Программа инициирует выполнение операторов, вызывая метод и задавая необходимые аргументы метода.
Использование методов/примеры:
Использование и создание методов в программе на С# во многом схоже на подход из С++. Рассмотрим это поподробней. В C# любой метод является методом какого-либо класса. Например:
using System;
class Man{
public string name;
public int age;
public Man(string n,int a){
name = n;
age = a;
}
public void Show(){
Console.WriteLine("Имя = "+name+"\tВозраст = "+age);
}
}
class Sample
{
static void Main()
{
try{
Man obj = new Man("Fire",56);
obj.Show();
}
catch(Exception er){
Console.WriteLine(er.Message);
}
Console.Read();
}
}
В данном примере у нас есть класс Man с методом Show и конструктором. Обратите внимание возле Show стоит спецификатор доступа public. Если его не указать по умолчанию будет поставлен private и вызвать его из класса Sample не получится. Для возврата значений и выхода из метода также как и в С++ используется оператор return. Принцип использования можно увидеть в следующем примере:
using System;
class SomeClass{
public float x;
public float y;
public SomeClass(float a,float {
x = a;
y = b;
}
public float Summa(){
return x+y;
}
public void Test(float t){
if(t == 0){
Console.WriteLine("Для деления был передан 0");
return;
}
Console.WriteLine(" Результат = ",(x+y)/t);
}
}
class Sample
{
static void Main()
{
try{
SomeClass obj = new SomeClass(2,3);
Console.WriteLine("Сумма равна = "+obj.Summa());
obj.Test(0);
}
catch(Exception er){
Console.WriteLine(er.Message);
}
Console.Read();
}
}
Передача параметров:
В C# есть два способа передачи параметров методу по значению, и по ссылке. В первом случае внутрь метода попадает не оригинальная переменная. а её копия, которая разрушается при выходе из метода не оказывая влияния на оригинальную переменную. При передаче методу значений обычных типов, таких как int, double и т.д. используется передача по значению. Следовательно, при изменение параметра, никакого влияния на оригинальную переменную не происходит. Например:
using System;
class SomeClass{
public float x;
public SomeClass(float a){
x = a;
}
public void TryToSetTo99(float res){
res = 99;
}
public float Mult(float res){
return res*x;
}
}
class Sample
{
static void Main()
{
try{
SomeClass obj = new SomeClass(2);
float test = 5;
obj.TryToSetTo99(test);
Console.WriteLine(test); // 5
Console.WriteLine(obj.Mult(test)); // 10
}
catch(Exception er){
Console.WriteLine(er.Message);
}
Console.Read();
}
}
Легко заметить, что переменная test не изменила своё значение после передачи её в TryToSetTo99.Теперь рассмотрим второй способ передачи параметров - по ссылке. В этом случае передается не копия переданного параметра, а ссылка на оригинальный объект, что позволяет модифицировать оригинал. По ссылке всегда автоматически передаются объекты классов. Например:
using System;
class SomeClass{
public int x;
public int y;
}
class SomeClass2{
public void Set(SomeClass obj){
obj.x=1;
obj.y=2;
}
}
class Sample
{
static void Main()
{
try{
SomeClass obj = new SomeClass();
SomeClass2 obj2 = new SomeClass2();
obj.x = 8;
obj.y = 9;
obj2.Set(obj); // передаётся по ссылке
Console.WriteLine(obj.x+" "+obj.y); // 1 2
}
catch(Exception er){
Console.WriteLine(er.Message);
}
Console.Read();
}
}
comment_799В этой теме я расскажу вам про методы
Что такое методы?
Метод представляет собой блок кода, содержащий набор инструкций. Программа инициирует выполнение операторов, вызывая метод и задавая необходимые аргументы метода.
Использование методов/примеры:
Использование и создание методов в программе на С# во многом схоже на подход из С++. Рассмотрим это поподробней. В C# любой метод является методом какого-либо класса. Например:
using System; class Man{ public string name; public int age; public Man(string n,int a){ name = n; age = a; } public void Show(){ Console.WriteLine("Имя = "+name+"\tВозраст = "+age); } } class Sample { static void Main() { try{ Man obj = new Man("Fire",56); obj.Show(); } catch(Exception er){ Console.WriteLine(er.Message); } Console.Read(); } }В данном примере у нас есть класс Man с методом Show и конструктором. Обратите внимание возле Show стоит спецификатор доступа public. Если его не указать по умолчанию будет поставлен private и вызвать его из класса Sample не получится. Для возврата значений и выхода из метода также как и в С++ используется оператор return. Принцип использования можно увидеть в следующем примере:
using System; class SomeClass{ public float x; public float y; public SomeClass(float a,float { x = a; y = b; } public float Summa(){ return x+y; } public void Test(float t){ if(t == 0){ Console.WriteLine("Для деления был передан 0"); return; } Console.WriteLine(" Результат = ",(x+y)/t); } } class Sample { static void Main() { try{ SomeClass obj = new SomeClass(2,3); Console.WriteLine("Сумма равна = "+obj.Summa()); obj.Test(0); } catch(Exception er){ Console.WriteLine(er.Message); } Console.Read(); } }Передача параметров:
В C# есть два способа передачи параметров методу по значению, и по ссылке. В первом случае внутрь метода попадает не оригинальная переменная. а её копия, которая разрушается при выходе из метода не оказывая влияния на оригинальную переменную. При передаче методу значений обычных типов, таких как int, double и т.д. используется передача по значению. Следовательно, при изменение параметра, никакого влияния на оригинальную переменную не происходит. Например:
using System; class SomeClass{ public float x; public SomeClass(float a){ x = a; } public void TryToSetTo99(float res){ res = 99; } public float Mult(float res){ return res*x; } } class Sample { static void Main() { try{ SomeClass obj = new SomeClass(2); float test = 5; obj.TryToSetTo99(test); Console.WriteLine(test); // 5 Console.WriteLine(obj.Mult(test)); // 10 } catch(Exception er){ Console.WriteLine(er.Message); } Console.Read(); } }Легко заметить, что переменная test не изменила своё значение после передачи её в TryToSetTo99.Теперь рассмотрим второй способ передачи параметров - по ссылке. В этом случае передается не копия переданного параметра, а ссылка на оригинальный объект, что позволяет модифицировать оригинал. По ссылке всегда автоматически передаются объекты классов. Например:
using System; class SomeClass{ public int x; public int y; } class SomeClass2{ public void Set(SomeClass obj){ obj.x=1; obj.y=2; } } class Sample { static void Main() { try{ SomeClass obj = new SomeClass(); SomeClass2 obj2 = new SomeClass2(); obj.x = 8; obj.y = 9; obj2.Set(obj); // передаётся по ссылке Console.WriteLine(obj.x+" "+obj.y); // 1 2 } catch(Exception er){ Console.WriteLine(er.Message); } Console.Read(); } }Лорд всея c#