Metodlarni e’lon qilish
C# tilida metodni e’lon qilish uchun metod modifikatori, qaytariladigan natija tipi, metod nomi va qavslar ichida argumentlar ro‘yxatini hosil qilish lozim. Har bir parametr argument tipi va nomga ega. Klass ichida parametrga ushbu nom orqali murojaat qilinadi.
public // modifikator bool // natija tipi IsSquare // funksiya nomi
(Rectangle obj) // argumentlar
{
// metod mazmuni return (bj.Height == obj.Width)
}
Agar metod biror qiymat qaytarmasa natija tipi sifatida void kalit so‘zi yoziladi. Agar funksiyada argumentlar mavjud bo‘lmasa, metod nomidan so‘ng bo‘sh qavslar
( ) keltiriladi. Metod quyidagi modifikatorlardan bir yoki bir nechtasiga ega bo‘lishi mumkin:
new public protected internal private static virtual abstract override sealed extern
Metodni chaqirish
Metodni chaqirish uchun metod mansub obyekt nomi, metod nomi va qavslar ichida argumentlar ro‘yxati yoziladi. Agar funksiya natija qaytarsa, uni o‘zgaruvchiga saqlash, boshqa funksiya argumenti sifatida uzatish mumkin.
Quyidagi misolda MathTest klassi va Square metodi aniqlangan bo‘lib, parametr sifatida berilgan sonning kvadratini qaytaradi. using System;
class MathTest
{
// Square metodini aniqlaymiz public int Square (int x)
{
return x*x;
}}
class MathClient
{
public static void main()
{
MathTest Math = new MathTest(); int x = Math.Square(10);
// Natija
Console.WriteLine(x);
}
}
}
Statik metodlarni ishlatish uchun klass nusxasi o‘rnida metod mansub klass nomi yoziladi.
String[] Names = {“John”, “Joe”, “Jeff”}; Array.Sort(Names); // Array.Sort – statik metod bo‘lib,
// uni Names.Sort() kabi chaqirib bo‘lmaydi.
Main metodida argumentlar
Metod argumentlari qiymat va uzatma bo‘yicha berilishi mumkin. Metodga uzatma bo‘yicha uzatiladigan o‘zgaruvchilar ustida amallar bajarilishi mumkin. Chunki bu holda metodga qiymat sifatida o‘zgaruvchi manzili uzatiladi. C# tilida barcha o‘zgaruvchilar qiymati bo‘yicha uzatiladi:
using System; class ParameterTest
{
//funksiya parametr sifatida int tipiga mansub massiv uzatiladi static void SomeFunction(int[] Ints, int I)
{
Ints[0]=100;
I=100;
}
public static void main()
{
int I=0;
int[] Ints={1, 2, 3, 4, 5, 8};
// boshlangich kiymatlarni aniklaymiz
Console.WriteLine("I= "+I);
Console.WriteLine("Ints[0]= "+Ints[0]); Console.WriteLine("SomeFunction funksiyasini chakiramiz...");
// Ushbu chakirishdan sung Ints kiymati uzgaradi, I esa uzgarmaydi
SomeFunction(Ints, I);
Console.WriteLine("I= "+I);
Console.WriteLine("Ints[0]= "+Ints[0]);
}
}
Dastur ishga tushirilgach, quyidagi natija hosil qilinadi:
I = 0
Ints[0] = 1
SomeFunction funksiyasini chakiramiz...
I = 0
Ints[0] = 100
Bunda, I o‘zgaruvchi qiymati o‘zgarmadi, Ints massiv qiymatida esa o‘zgarish sodir bo‘ldi. Parametr sifatida uzatilgan satrlar ham funksiya ichida o‘zgarmay qoladi. Ammo parametrga ref kalit so‘zini qo‘llash orqali qiymatni funksiya ichidan uzatish mumkin. Agar metoddagi parametr ref kabi uzatilsa, metod ichida o‘zgaruvchiga ustida bajarilgan barcha o‘zgartirishlar boshlang‘ich qiymatga ta’sir o‘tkazadi:
// Funksiya parametr sifatida massivni (uzatma buyicha tip)
// va int (kiymat buyicha tip) tipiga mansub kiymatni kabul kiladi.
// Ammo ikkinchi argument ref kabi aniklangani uchun
// uzatma buyicha uzatiladi.
static void SomeFunction(int[] Ints, ref int I) {
Ints[0] = 100;
I = 100;
}
Do'stlaringiz bilan baham: |