Program Örnekleriyle C#'ta Erişim Değiştiricileri (Belirleyiciler)

⚡ Akıllı Özet

C#'da erişim değiştiriciler, bir sınıfın, özelliğin veya metodun görünürlüğünü ayarlayan ve hangi harici programların bunlara erişebileceğini kısıtlayan anahtar kelimelerdir. Yapıcılar, sınıfın bir nesnesi oluşturulduğunda alan değerlerini otomatik olarak başlatır.

  • 🔐 Özel: `private` erişim değiştiricisi, bir üyenin yalnızca aynı sınıfa ait olmasını sağlayarak, harici herhangi bir programdan erişimi engeller.
  • 🌐 Halka açık: Genel erişim değiştirici, bir özelliği veya yöntemi herhangi bir dış programa kısıtlama olmaksızın erişilebilir hale getirir.
  • 🛡️ Korumalı: Korumalı erişim değiştirici, üyeleri yalnızca geçerli sınıftan miras alan sınıflarla paylaşır.
  • ???? Dahili: Dahili erişim değiştirici, aynı derleme içindeki erişime izin verir ancak harici bir programdan erişime izin vermez.
  • 🏗️ Oluşturucu: Yapıcı metot, sınıf adını paylaşır, dönüş tipi almaz ve bir nesne oluşturulduğunda alanları başlatır.
  • 🤖 Yapay zeka yardımı: GitHub Copilot, değiştiricileri ve yapıcıları oluştururken, ML.NET ise sınıf özelliklerini model özelliklerine eşler.

C#'da Erişim Değiştiriciler (Belirticiler)

C#'ta Erişim Değiştirici (Belirleyici) nedir?

Erişim Değiştiricileri C#'da erişim belirleyiciler, bir sınıf özelliğinin veya yönteminin görünürlüğünü tanımlamak için kullanılan anahtar kelimelerdir. Diğer programların bir sınıfın özelliklerini veya yöntemlerini görmesini istemediğinizde kullanılır. Erişim belirleyiciler, diğer programların bir sınıfın özelliklerini veya yöntemlerini görememesi için erişimi kısıtlar.

C#'ta 6 tür erişim değiştirici vardır:

  • Özel Etkinlik
  • Açık Alan
  • korumalı
  • İç
  • Korumalı Dahili
  • Özel Korumalı

C#'taki ana erişim değiştiricileri aşağıda açıklandığı gibi program örnekleriyle öğreneceğiz.

C#'ta Özel Erişim Değiştiriciler

Özel erişim değiştiricinin bir özelliğe veya yönteme eklenmesi, bu üyelere herhangi bir harici programdan erişilemeyeceği anlamına gelir.

Özel Erişim Değiştirici Örneği

Bir örnek alalım ve özel erişim değiştiriciyi kullandığımızda ne olacağını görelim.

Tutorial.cs dosyamızdaki mevcut kodu değiştirelim. SetTutorial metodunda public anahtar sözcüğünü özel olarak değiştirelim.

Özel Erişim Değiştiriciler

Şimdi Program.cs dosyamıza geçelim. SetTutorial metodunun altında kırmızı dalgalı bir çizgi olduğunu fark edeceksiniz.

Tutorial sınıfımızda SetTutorial metodunu private olarak bildirdiğimizden beri, Visual Studio bunu tespit etti. Kullanıcıya, Program.cs dosyasından artık bu metodun çalışmayacağını vurgulayarak bildirdi.

Özel Erişim Değiştirici

C# Genel Erişim Değiştiricileri

Genel erişim değiştiricisi bir özelliğe veya yönteme eklendiğinde bu, bu üyelere herhangi bir harici programdan erişilebileceği anlamına gelir. Bunu daha önceki örneklerimizde de görmüştük.

Genel Erişim Değiştirici Örneği

C# Genel Erişim Değiştiricileri

Tutorial sınıfında metodlarımızı public olarak tanımladığımız için Program.cs dosyasından ulaşılabilir.

C#'ta Korumalı Erişim Değiştiricileri

Korumalı erişim değiştirici bir özelliğe veya yönteme eklendiğinde bu, bu üyelere yalnızca miras alınan sınıflar akımdan sınıf. Bu, Kalıtım sınıfında daha ayrıntılı olarak açıklanacaktır.

C# Dahili Erişim Değiştiricileri

Bir özelliğe veya yönteme Dahili erişim değiştirici eklendiğinde, bu üyelere yalnızca dahili bir program tarafından erişilebilir, ancak harici bir program tarafından erişilemez.

C# Oluşturucusu

C# Yapıcılar, karşılık gelen nesneler oluşturulduğunda sınıf alanlarının değerlerini başlatmak için kullanılır. Yapıcı, sınıfınkiyle aynı adı taşıyan bir yöntemdir. Bir sınıfta bir kurucu tanımlanmışsa, o zaman bir nesne yaratıldığında çağrılan ilk yöntemi sağlayacaktır. Çalışan adında bir sınıfımız olduğunu varsayalım. Yapıcı yöntemi aynı zamanda Employee() olarak da adlandırılır.

Oluşturucu yöntemleri hakkında dikkat edilmesi gereken önemli noktalar şunlardır:

  1. Yapıcı için C# varsayılan erişim değiştiricisinin genel olarak yapılması gerekir.
  2. Yapıcı yöntemi için dönüş türü olmamalıdır.

C# Oluşturucu Örneği

Şimdi yapıcıların kullanıcısını kodumuza nasıl dahil edebileceğimizi görelim. Nesne oluşturulduğunda TutorialID ve TutorialName alanlarını bazı varsayılan değerlere başlatmak için yapıcıları kullanacağız.

) 1 Adım İlk adım, Öğretici sınıfımızın yapıcısını oluşturmaktır. Bu adımda Tutorial.cs dosyasına aşağıdaki kodu ekliyoruz.

C# Oluşturucusu

Code Açıklama:-

  1. Öncelikle sınıfla aynı adı taşıyan yeni bir yöntem ekliyoruz. Sınıfla aynı isim olduğundan, C# bunu bir yapıcı yöntemi olarak ele alır. Artık çağıran yöntem bu sınıftan bir nesne oluşturduğunda, bu yöntem varsayılan olarak çağrılacaktır.
  2. Tutorial yapıcısında TutorialID değerini 0 ve TutorialName değerini “Default” olarak ayarlıyoruz. Yani ne zaman bir nesne yaratılsa bu alanlar her zaman bu varsayılan değerlere sahip olacaktır.

Şimdi Program.cs dosyamıza geçiş yapalım ve SetTutorial metodunu çağıran satırı kaldıralım. Bunun nedeni yapıcının nasıl çalıştığını görmek istememizdir.

C# Oluşturucusu

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  public int TutorialID; 
  public string TutorialName;
  
  public Tutorial()
  {
   TutorialID=0;
   TutorialName="Default";
  }
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  public String GetTutorial()
  {
   return TutorialName;
  }
  
  static void Main(string[] args) 
  {
   Tutorial pTutor=new Tutorial();
    
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

Code Açıklama:-

  1. İlk adım, Tutorial sınıfı için bir nesne oluşturmaktır. Bu 'yeni' anahtar kelime aracılığıyla yapılır.
  2. TutorialName’i almak için Tutorial sınıfının GetTutorial metodunu kullanıyoruz. Bu daha sonra Console.WriteLine yöntemi aracılığıyla konsola görüntülenir.

Yukarıdaki kod düzgün bir şekilde girilip program çalıştırıldığında aşağıdaki çıktı görüntülenecektir.

Çıktı:

C# Oluşturucusu

Çıktıdan yapıcının gerçekten çağrıldığını ve TutorialName değerinin “Default” olarak ayarlandığını görebiliriz.

Not: Burada “varsayılan” değeri yapıcıdan alınır.

SSS

Herhangi bir değiştirici belirtilmezse, sınıf ve yapı üyeleri varsayılan olarak private, üst düzey türler ise internal olur ve görünürlüklerini genişletene kadar gizli kalırlar.

`Protected` özelliği, bir üyeyi aynı sınıfa ve ondan türetilmiş herhangi bir sınıfa, hatta farklı derlemelere bile açık hale getirir. `Internal` özelliği ise yalnızca aynı derlemedeki türlere açık hale getirir.

`Protected internal`, aynı derlemeden veya türetilmiş herhangi bir sınıftan erişime izin verir. `Private protected` ise daha katıdır ve yalnızca aynı derleme içindeki türetilmiş sınıflara izin verir.

C#, varsayılan, parametreli, kopyalama, statik ve özel kurucu metotları destekler. Bu metotlar, bir nesnenin alanlarını başlatır, sınıf kurulumunu bir kez çalıştırır veya başka bir nesnenin değerlerini kopyalar.

Statik kurucu metot, herhangi bir değiştirici veya parametre almaz. İlk nesne oluşturulmadan veya statik üyeler yüklenmeden önce bir kez çalışır ve statik alanları başlatır.

Evet. Bir sınıf, farklı parametre listelerine sahip birden fazla kurucu metot tanımlayabilir. Derleyici, `new` metoduna geçirilen argümanlarla eşleşen kurucu metodu seçer.

Evet. GitHub Copilot, Visual Studio içindeki bir sınıf adından veya yorumdan değiştiricileri, kurucuları ve alan başlatıcılarını önerir ve VS Code. RevÖnerilen her bir görünürlük seviyesini inceleyin.

ML.NET, bir C# veri sınıfının genel özelliklerini model özelliklerine ve etiketlerine eşler. Genel getter ve setter'lar, eğitim sırasında bu değerleri okumasını sağlar.

Bu yazıyı şu şekilde özetleyin: