Пример – деклариране на метод
Нека погледнем декларирането на един метод за намиране сбор на две цели числа:
int Add(int number1, int number2)
{
int result = number1 + number2;
return result;
}
|
Името, с което сме го декларирали, е Add, а типът на връщаната му стойност е int. Списъкът му от параметри се състои от два елемента – променливите number1 и number2. Съответно, връщаме стойността на сбора от двете числа като резултат.
Достъп до нестатичните данни на класа
В главата "Създаване и използване на обекти", разгледахме как чрез оператора точка, можем да достъпим полетата и да извикаме методите на един клас. Нека припомним как можем да достъпваме полета и да извикваме методи на даден клас, които не са статични, т.е. нямат модификатор static, в декларацията си.
Например, нека имаме клас Dog, с поле за възраст – age. За да отпечатаме стойността на това поле, е нужно да създадем обект от клас Dog и да достъпим полето на този обект чрез точкова нотация:
public class Dog
{
int age = 2;
public static void Main()
{
Dog dog = new Dog();
Console.WriteLine("Dog's age is: " + dog.age);
}
}
|
Съответно резултатът ще бъде:
Достъп до нестатичните полетата на класа от нестатичен метод
Достъпът до стойността на едно поле може да се осъществява не директно чрез оператора точка (както бе в последния пример dog.age), а чрез метод или свойство. Нека в класа Dog си създадем метод, който връща стойността на полето age:
public int GetAge()
{
return this.age;
}
|
Както виждаме, за да достъпим стойността на полето за възрастта, вътре, от самия клас, използваме ключовата дума this. Знаем, че ключовата дума this е референция към текущия обект, към който се извиква метода. Следователно, в нашия пример, с "return this.age", ние казваме "от текущия обект (this) вземи (използването на оператора точка) стойността на полето age и го върни като резултат от метода (чрез ключовата дума return)". Тогава, вместо в метода Main() да достъпваме стойността на полето age на обекта dog, ние просто ще извикаме метода GetAge():
static void Main()
{
Dog dog = new Dog();
Console.WriteLine("Dog's age is: " + dog.GetAge());
}
|
Резултатът след тази промяна ще бъде отново същият.
Формално, декларацията за достъп до поле в рамките на класа, е следната:
Сподели с приятели: |