Class Kullanımı
![]()
public partial class Form1 : Form { Arac arac; // Sınıf seviyesi değişken public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { arac = new Arac(); arac.Model = "Toyota Corolla"; arac.Plaka = "34ABC123"; arac.Km = 123456; arac.BilgiYaz(); } public class Arac { public string Model; public string Plaka; public int Km; public void BilgiYaz() { MessageBox.Show($"Model: {Model}nPlaka: {Plaka}nKM: {Km}"); } } }
Eri?şi?m Beli?rleyi?ci?ler (access Modifiers)
.NET platformunda oluşturulan uygulamalarda güvenliği artırmak amacıyla sınıflara ve/veya sınıf içinde kullanılan ögelere erişimin kısıtlanması gerekir. Dolayısıyla koda dışarıdan erişimi
n sınırlarını belirlemek amacıyla erişim belirleyicileri kullanılır.
C# programlama dilinde kullanılan erişim belirleyicileri şunlardır:
| public (Genel) | Public olarak tanımlanan ögeler üzerinde herhangi bir kısıtlama yoktur. Her yerden erişilebilirdir. |
| private (Gizli) | En katı erişim belirleyicidir. Ögeler sadece tanımlandığı sınıf içinde erişilebilirdir. Bir başka deyişle ögeler sadece tanımlandığı küme parantezleri arasında kullanılabilir. |
| protected (Korunumlu) | Ögeler, bulunduğu sınıf içinde ya da bu sınıftan türeyen diğer sınıflarda erişilebilirdir. |
| internal (Dâhilî) | Internal olarak tanımlanan ögelere sadece aynı program içinden erişilebilir. |
| protected internal (Dâhilî+Korumalı) | Ögeler hem protected hem de internal erişim belirleyicisine sahip olarak değerlendirilir. Türetilen sınıfın farklı program içinde olması sorun teşkil etmez. |
Örnek
EkKlas.csusing System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WindowsFormsApp27 { internal class EkKlas { public int BanaHerYedenUlasilir = 1; private int BanaSadeceBuKlasstanErisilir = 1; protected int BanaSadeceBuKlasinEklendigiKlastanErisilir = 1; internal int BanaBuProjeIcindenkiHerHangiBirYerdenErisilir= 1; public EkKlas() //yapilandirici fonksiyon, bu nesneden obje olusunca bu otomatik calisicak { this.BanaSadeceBuKlasstanErisilir = 2; this.BanaSadeceBuKlasinEklendigiKlastanErisilir = 2; this.BanaBuProjeIcindenkiHerHangiBirYerdenErisilir = 2; } } }Form1.csusing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp27 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { EkKlas ObjeEkKlas = new EkKlas(); ObjeEkKlas.BanaHerYedenUlasilir = 2; /* ObjeEkKlas.BanaSadeceBuKlasstanErisilir = 2; //private ObjeEkKlas.BanaSadeceBuKlasinEklendigiKlastanErisilir = 2; //protected */ ObjeEkKlas.BanaBuProjeIcindenkiHerHangiBirYerdenErisilir = 2; } } }