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şim Belirleyiciler (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
using static WinFormsApp1.Class1;
namespace WinFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Manav mnv = new Manav();
MessageBox.Show("Sepet Toplamı: " + mnv.Toplam());
MessageBox.Show(mnv.Sepet());
mnv.Yelma = 100;
MessageBox.Show("" + mnv.Yelma);
MessageBox.Show("Sepet Toplamı: " + mnv.Toplam());
MessageBox.Show(mnv.Sepet());
}
}
}
manav.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WinFormsApp1
{
internal class Class1
{
public class Manav
{
int Eadet = 4, Aadet = 6, Madet = 8, Kadet = 2;
private int Elma = 10;
private int Armut = 20; //public int Armut = 20;
private int Mandilina = 25;
private int Karpuz = 50;
public int Yelma
{
get { return Elma; }
set
{
this.Elma = value;
}
}
public int Toplam()
{
int Toplam = (this.Elma * Eadet) + (this.Armut * Aadet) + (this.Mandilina * Madet) + (this.Karpuz * Kadet);
return Toplam;
}
public String Sepet()
{
return "Sepetinizn" + Eadet + " Adet Elma n " + Aadet + " Adet Armut n " + Kadet + " Adet Karpuz n " + Madet + " Adet Mandilina";
}
}
}
}
Örnek
EkKlas.cs
using 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; } } }
Örnek
Harici class dosyasını eklemek için
ekKlas.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp29
{
internal class EkKlas
{
private int Aci1, Aci2, Aci3;
public int AciA
{
get { return Aci1; }
set {
if(value < 0)
{
this.KucukSayiMesaj();
Aci1 = 0;
return;
}
Aci1 = value;
}
}
public int AciB
{
get;
set;
}
/*public int AciB
{
get { return Aci2; }
set
{
if (value < 0)
{
this.KucukSayiMesaj();
Aci2 = 0;
return;
}
Aci2 = value;
}
}*/
public int AciC
{
get { return Aci3; }
set
{
if (value < 0)
{
this.KucukSayiMesaj();
Aci3 = 0;
return;
}
Aci3 = value;
}
}
public void KucukSayiMesaj()
{
MessageBox.Show("Lütfen 0 dan küçük sayı girmeyiniz");
}
public int AcilarToplami()
{
return (this.Aci1 + this.AciB + this.Aci3);
}
public String IkizKenarMi()
{
if(this.Aci1 == this.AciB )
{
return "Evet";
}
else if(this.Aci1 == this.Aci3)
{
return "Evet";
}
else if(this.AciB == this.Aci3)
{
return "Evet";
}
else
{
return "Hayır";
}
}
}
}
form.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp29
{
internal class EkKlas
{
private int Aci1, Aci2, Aci3;
public int AciA
{
get { return Aci1; }
set {
if(value < 0)
{
this.KucukSayiMesaj();
Aci1 = 0;
return;
}
Aci1 = value;
}
}
public int AciB
{
get;
set;
}
/*public int AciB
{
get { return Aci2; }
set
{
if (value < 0)
{
this.KucukSayiMesaj();
Aci2 = 0;
return;
}
Aci2 = value;
}
}*/
public int AciC
{
get { return Aci3; }
set
{
if (value < 0)
{
this.KucukSayiMesaj();
Aci3 = 0;
return;
}
Aci3 = value;
}
}
public void KucukSayiMesaj()
{
MessageBox.Show("Lütfen 0 dan küçük sayı girmeyiniz");
}
public int AcilarToplami()
{
return (this.Aci1 + this.AciB + this.Aci3);
}
public String IkizKenarMi()
{
if(this.Aci1 == this.AciB )
{
return "Evet";
}
else if(this.Aci1 == this.Aci3)
{
return "Evet";
}
else if(this.AciB == this.Aci3)
{
return "Evet";
}
else
{
return "Hayır";
}
}
}
}
Örnek
using 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 WindowsFormsApp30
{
public partial class Form1 : Form
{
MetinIslemleri MT = new MetinIslemleri();
public Form1()
{
InitializeComponent();
}
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
MT.GelenMetin = textBox1.Text;
label1.Text = MT.TersCevirici();
}
}
}
iremalic.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WindowsFormsApp3
{
internal class iremalic
{
public string gelenmetin
{
get;
set;
}
public string terscevir()
{
string yenimetin = "";
for (int i = this.gelenmetin.Length - 1; i >= 0; i)
{
yenimetin += gelenmetin[i].ToString();
}
return yenimetin;
}
public string terscevir2(String YollananMetin)
{
string yenimetin = "";
for (int i = YollananMetin.Length - 1; i >= 0; i)
{
if (i%2== 0)
yenimetin += YollananMetin[i].ToString().ToUpper();
else
yenimetin += YollananMetin[i].ToString().ToLower();
}
return yenimetin;
}
}
}