Перейти к содержанию
Опубликовано
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#

Рекомендуемые сообщения

Нет сообщений для отображения
Гость
Эта тема закрыта для публикации ответов.