Herkes için C# Programlama Eğitimi-13: Method tanımlama ve erişim sağlama
C# dilinde diğer yazılım dillerinde olduğu gibi tekrar tekrar aynı kodları yazmamızın önüne geçen method tanımlamaları yapılabilmektedir. Bu sayede bazı işlemleri kodlama süreçlerimizde kolayca ve daha derli toplu işletebiliriz.
Method tanımlarken öncelikle tanımlayacağımız methodun türünü belirtir, bir ad verir ve sonrasında atayacaksak parantez içinde parametreleri belirleriz.
İlk methodumuzu tanımlama
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace ConsoleApp1
{
class Program
{
int enBuyukDeger(int deger1,int deger2)
{
return Math.Max(deger1,deger2);
}
static void Main(string[] args)
{
Program nesne = new Program();
int bul = nesne.enBuyukDeger(2,23);
Console.WriteLine(“2 ve 23 sayıları arasındaki en büyük olanı :”+bul);
Console.ReadLine();
}
/*Yukarıdaki method tanımlamasında math sınıfından bir fonksiyon kullandık ve bu fonksiyon içerisine deger1, deger 2 adlarıyla parametre atadık sonrasında ana fonksiyonumuzda önce sınıfımızdan bir nesne oluşturduk ve bu nesne içinde tanımladığımız methodu çağırdık.*/
}
}
Erişim sağlayıcılar
Programlarımızda çoğu zaman fonksiyon tanımlarken, tanımlanan fonksiyonların üretildiği sınıf içerisinde veya dışırasında da başka sınıflardan erişilmesini isteyebiliriz. Bu durumda üç temel erişim sağlayıcı karşımıza çıkıyor.
private : Sadece üretildiği sınıftan erişilebilir.
public : Hem kendi sınıfından, hem üretildiği sınıf içinden ve dışından erişilebilir.
protected : Kendi sınıfından ve türetilen sınıftan erişilebilir.
Fonksiyon türleri
Bu başlıkta belirtmek istediğim önemli bir husus method ve fonksiyon tanımları c# anlatımlarında aynı kavrama denk gelmektedir. Bu sebeple kafanız karışmamalıdır.
Fonksiyon tanımlanırken ilk önce türü ve sonrasında fonksiyon adını ve parametrelerini belirleyerek yaptığımızı örneklendirmiştik. Sonrasında fonksiyon içerisinde return ifadesiyle fonksiyonumuzu sonlandırmıştık. Bu noktada böyle çalışan fonksiyonlar için değer döndüren fonksiyonlar şeklinde tanımlayabileceğimizi dile getirmek isterim. Bu tarz fonksiyonlar daha çok başka fonksiyonlara yer verebileceğimiz hesaplamalar yapabileceğimiz durumlarda kullanabiliriz.
Bir diğer fonksiyon türü ise void olan ve değer döndürmeyen doğrudan çalışan ve çıktısını gördüğümüz fonksiyonlardır. Bu methodlar ana method içerisinde çağrılırken sınıf içerisinden new anahtar sözcüğüyle türetilmeden çağrılırlar. Gelin aşağıda bir örnekle açıklayalım.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace ConsoleApp1
{
class Program
{
static void uyeleriListele(string[] uyeler)
{
foreach(string listele in uyeler)
{
Console.WriteLine(listele);
}
}
static void Main(string[] args)
{
string[] kisiler = {“ahmet”,”hakan”,”sarper” };
uyeleriListele(kisiler);
Console.ReadLine();
}
/*Yukarıdaki örnekte static olarak void methodumuzu tanımladık ve parametre olarak ise bir dizi oluşturduk. Ana methodumuza geçtik ve bir dizi tanımladık sonrasında ana methodda oluşturduğumuz dizinin elemanlarını ekrana bastırdık.*/
}