C# Getter Setter (Geliştiriciler İçin Nasıl Çalışır)
Getter'lar ve setter'lar, C# gibi nesne yönelimli programlama dillerinde temel konseptlerdir. Bu iki yöntem, sınıf özelliklerine erişimi ve değişikliği kontrol etmemizi sağlar. Bu öğreticide, C# getter'ları ve özel setter'ları kod blokları kullanarak hem başlangıç hem de orta düzey yönlerini keşfedeceğiz.
Getter'lara ve Setter'lara Giriş
Getter'lar ve Setter'lar Nedir?
Özünde, getter'lar ve setter'lar, bir sınıftaki özel değişkenlere erişimi sağlayan yöntemlerden başka bir şey değildir. Getter, özel bir alan değişkeninin değerini döndürürken, setter onu değiştirir. Bu yöntemler, bir sınıfın dahili verilerinin (alanlarının) güvenli ve doğru bir şekilde erişilmesini veya değiştirilmesini sağlar.
Neden onlara ihtiyaçımız var?
Bir public class Car ve private string description özelliği olan bir public class Car hayal edin. Bu sınıfın dışındaki biri açıklamayı bilmek isterse, buna doğrudan erişemez çünkü bu özeldir. Burada getter ve setter'ların rolü devreye girer.
Bir getter, kullanıcıların bir private string description değerini doğrudan değiştirme izni vermeden almalarına olanak tanır. Öte yandan, bir setter, kullanıcıların belirlediğimiz koşullar altında açıklamayı değiştirmesine izin verir.
Erişim Belirleyicileri
Erişim belirleyicileri, sınıf dışından bir alan veya özellik düzeyindeki görünürlük ve erişilebilirliği tanımlar. En yaygın kullanılan düzenleyiciler public ve private'dir.
Public:publicolarak tanımlanan alanlar veya özellikler, programınızın herhangi bir yerinden erişilebilir. Örneğin, kodunuzun herhangi bir bölümünden erişilebilen ve değiştirilebilen birpublic int Ageözelliği olabilir.Private:privateolarak tanımlanan özellikler veya alanlar yalnızca tanımlı oldukları sınıf içerisinde erişilebilir, örneğinprivate int age. Bu kapsülleme, yetkisiz değişiklikleri önler ve sınıfın içsel durumunun düzgün şekilde korunmasını sağlar.
Basit Getter ve Setter
Basit bir örnekle başlayalım.
using System;
public class Person
{
private string name; // This is a private string name property variable
// This is the getter
public string GetName()
{
return name;
}
// This is the setter
public void SetName(string newName)
{
name = newName;
}
}
class Program
{
static void Main()
{
Person person = new Person();
person.SetName("John");
Console.WriteLine(person.GetName());
}
}
using System;
public class Person
{
private string name; // This is a private string name property variable
// This is the getter
public string GetName()
{
return name;
}
// This is the setter
public void SetName(string newName)
{
name = newName;
}
}
class Program
{
static void Main()
{
Person person = new Person();
person.SetName("John");
Console.WriteLine(person.GetName());
}
}
Imports System
Public Class Person
Private name As String ' This is a private string name property variable
' This is the getter
Public Function GetName() As String
Return name
End Function
' This is the setter
Public Sub SetName(ByVal newName As String)
name = newName
End Sub
End Class
Friend Class Program
Shared Sub Main()
Dim person As New Person()
person.SetName("John")
Console.WriteLine(person.GetName())
End Sub
End Class
Yukarıdaki class Person, name özelliği için hem bir getter (GetName) hem de bir setter (SetName) bulunmaktadır. static void Main metodunu çalıştırdığınızda, setter kullanarak isim için bu değeri ayarladığımız için "John" yazdırır.
Otomatik Uygulanan Özellikler
Şimdi, "Getter ve setterlar için her zaman ayrı metodlar yazmam gerekiyor mu?" diye düşünebilirsiniz. Cevap "hayır." C# bu işlemi basitleştirmek için "otomatik uygulanan özellikler" veya "otomatik özellikler" adı verilen bir kavramı tanıttı.
C# içinde, bir private field ve ona bağlı özelliği tanımlamak için kısayol sağlayan otomatik özellikler kullanabilirsiniz. İşte bir örnek:
using System;
public class Student
{
public string Name { get; set; } // This is an auto-implemented or automatic property
public string Title { get; set; } // Another auto-implemented property
}
class Program
{
static void Main()
{
Student student = new Student();
student.Name = "Alice"; // Using setter
Console.WriteLine(student.Name); // Using getter
}
}
using System;
public class Student
{
public string Name { get; set; } // This is an auto-implemented or automatic property
public string Title { get; set; } // Another auto-implemented property
}
class Program
{
static void Main()
{
Student student = new Student();
student.Name = "Alice"; // Using setter
Console.WriteLine(student.Name); // Using getter
}
}
Imports System
Public Class Student
Public Property Name() As String ' - This is an auto-implemented or automatic property
Public Property Title() As String ' - Another auto-implemented property
End Class
Friend Class Program
Shared Sub Main()
Dim student As New Student()
student.Name = "Alice" ' Using setter
Console.WriteLine(student.Name) ' Using getter
End Sub
End Class
Student sınıfında, Name özelliği hem bir getter hem de bir setter'dır ve otomatik olarak uygulanırlar. C# derleyicisi perde arkasında bir private string name alan oluşturur ve Name özelliği bu alana erişim sağlar.
Gelişmiş Erişim Belirleyicileri
Sadece Okunan Özellikler
Bazen, dışarıdan değiştirilemeyecek bir özellik sağlamak isteyebilirsiniz. Bu durumda sadece okuma özellikleri işe yarar. Bir özelliği salt okunur yapmak için içinde setter'ı atlayabilirsiniz.
Diyelim ki Person sınıfımıza salt okunur bir string Description özelliği eklemek istiyoruz:
public class Person
{
public string Name { get; set; }
public string Description { get; }
public Person(string name, string description)
{
Name = name;
Description = description;
}
}
public class Person
{
public string Name { get; set; }
public string Description { get; }
public Person(string name, string description)
{
Name = name;
Description = description;
}
}
Public Class Person
Public Property Name() As String
Public ReadOnly Property Description() As String
Public Sub New(ByVal name As String, ByVal description As String)
Me.Name = name
Me.Description = description
End Sub
End Class
Bu örnekte, Description özelliği yalnızca Person sınıfının yapıcısında ayarlanabilir. Bir kez ayarlandıktan sonra, dışarıdan değiştirilemez.
Özel Setterler
Bazen, özelliğin sınıf dışından okunmasına izin vermek ancak yalnızca sınıf içinden ayarlanmasına izin vermek isteyebilirsiniz. Bu, bir private set kullanılarak sağlanır.
using System;
public class Program
{
public string Description { get; private set; }
public Program()
{
Description = "This is a program about getters and setters.";
}
}
class ProgramTest
{
static void Main()
{
Program myProgram = new Program();
Console.WriteLine(myProgram.Description); // Allowed
// myProgram.Description = "New Description"; // Not allowed
}
}
using System;
public class Program
{
public string Description { get; private set; }
public Program()
{
Description = "This is a program about getters and setters.";
}
}
class ProgramTest
{
static void Main()
{
Program myProgram = new Program();
Console.WriteLine(myProgram.Description); // Allowed
// myProgram.Description = "New Description"; // Not allowed
}
}
Imports System
Public Class Program
Private privateDescription As String
Public Property Description() As String
Get
Return privateDescription
End Get
Private Set(ByVal value As String)
privateDescription = value
End Set
End Property
Public Sub New()
Description = "This is a program about getters and setters."
End Sub
End Class
Friend Class ProgramTest
Shared Sub Main()
Dim myProgram As New Program()
Console.WriteLine(myProgram.Description) ' Allowed
' myProgram.Description = "New Description"; // Not allowed
End Sub
End Class
class Program içinde, Description özelliği bir private set'e sahiptir, bu da sınıf dışından değiştirilemeyeceği anlamına gelir ve verinin bütünlüğünü garanti eder.
Kalıtım ve Geçersiz Kılma
Türetilmiş sınıflarla çalışırken, getter ve setter yöntemlerini davranışlarını özelleştirmek için geçersiz kılabilirsiniz. Bu, değerleri alırken veya ayarlarken ek mantık eklemenize olanak tanır.
public class Person
{
public virtual string Name { get; set; }
}
public class Student : Person
{
private string studentID;
public override string Name
{
get { return base.Name; }
set
{
if (!string.IsNullOrEmpty(value))
base.Name = value;
}
}
}
public class Person
{
public virtual string Name { get; set; }
}
public class Student : Person
{
private string studentID;
public override string Name
{
get { return base.Name; }
set
{
if (!string.IsNullOrEmpty(value))
base.Name = value;
}
}
}
Public Class Person
Public Overridable Property Name() As String
End Class
Public Class Student
Inherits Person
Private studentID As String
Public Overrides Property Name() As String
Get
Return MyBase.Name
End Get
Set(ByVal value As String)
If Not String.IsNullOrEmpty(value) Then
MyBase.Name = value
End If
End Set
End Property
End Class
Bu örnekte, Student sınıfı Person'dan miras alır ve Name özelliğinin setter'ini geçersiz kılar. İsim ayarlanmadan önce boş veya null olmadığını garanti eden bir doğrulama kontrolü ekler.
C# Gelişiminizi Artırmak İçin Iron Suite Tanıtımı
Iron Suite, C# geliştirme yeteneklerini önemli ölçüde artıran bir araştırma çabası araçları koleksiyonudur. İçerisinde IronPDF, IronXL, IronOCR ve IronBarcode'u bulundurur. Bu araçların her biri benzersiz bir amaca hizmet eder ve C#'ın çeşitli yönlerine entegre edilebilir.
IronPDF - Güçlü Bir PDF Yönetim Aracı
IronPDF hakkında daha fazla bilgi edinin ki bu, geliştiricilerin C#'ta PDF dökümanları oluşturmasına, okumasına ve düzenlemesine olanak tanıyan bir kütüphanedir. İster HTML'yi PDF'ye dönüştürün, ister getter ve setter'ları kullanarak PDF meta verilerini yönetin, IronPDF sizinle.
HTML'den PDF'ye dönüştürmede IronPDF, özgün düzenlerin ve tarzların hassas korunmasını sağlamakta üstünlük sağlar. Web tabanlı içeriklerden, örneğin raporlar, faturalar ve belgeler gibi PDF'ler oluşturmak için mükemmeldir. HTML dosyaları, URL'ler ve ham HTML dizeleri desteği ile IronPDF kolaylıkla yüksek kaliteli PDF belgeler üretir.
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class
IronXL - Excel Manipülasyonu Kolaylaştırıldı
Excel dosyalarıyla çalışırken, IronXL Excel Kutuphanesi okuma ve yazma sürecini basitleştirir. Bu araç, Excel dosyalarının özel ve genel dizelerini veya tam sayılarını, bir sınıf içinde verileri aynı C#'taki gibi getter ve setter kullanarak idare etmeniz gibi yönlendirmenize olanak tanır.
IronOCR - Optical Character Recognition in C
IronOCR'u keşfedin, görüntüleri arama yapılabilir metne çeviren bir Optik Karakter Tanıma kütüphanesidir. Uygulamanız taranmış belgelerden metin okuma içeriyorsa, IronOCR'un güçlü yetenekleri kolayca entegre edilebilir. Bu, özel alanları ve genel string açıklamaları, önceki örnek kurulumdaki bir Person sınıfı veya Student sınıfında olduğu gibi yönetebilir.
IronBarcode - Barkod Okuma ve Yazma Kütüphanesi
Uygulamalar için barkod okuma ve yazma özelliklerini keşfedin Bu, barkod verilerine doğrudan erişim ve otomatik özellikler yoluyla özelleştirme imkanı tanır, tıpkı C# programlamasında kullanılan getter ve setter'lar gibi.
Iron Suite ve Getter ile Setter'lar
Iron Suite paketi, C# geliştirmesiyle, getter ve setter'lar dahil olmak üzere kesintisiz bir şekilde entegre edilir. Bu araçlar, herhangi bir C# projesine değer katar.
Sonuç
Özetle:
Getter and Setter: Bir sınıfın özel alanlarına erişmek ve değiştirmek için yardım ederler.Auto Properties: Otomatik olarak gerçekleştirilen özellikler yardımıyla otomatik getter'lar ve setter'lar elde etmenin zarif bir yolu.Access Modifiers: Özelliklerin erişilebilirliğini ince ayarlamak için yardımcı olurlar.
Şimdiye kadar, C#'ta getter ve setter kullanımı için sağlam bir kavrayışınız olmuş olmalıdır.
Iron Suite'in araçlar paketi, C# geliştiricileri için inanılmaz işlevsellik sunar. IronPDF, IronXL, IronOCR ve IronBarcode dahil olmak üzere bu ürünlerin her biri, Iron Software araçlarının ücretsiz deneme sürümü ile gelir ve bu güçlü kütüphaneleri projelerinize herhangi bir ilk yatırım olmaksızın keşfetmenize ve entegre etmenize olanak tanır.
Karar vermeye hazır olduğunuzda, bireysel lisanslar $799'dan başlar. Bu araçlardan birden fazlasının ihtiyaçınıza uygun olduğunu düşünüyorsanız, sadece iki bireysel lisans fiyatına tüm Iron Suite paketi satın alma fırsatını değerlendirebilirsiniz.
Sıkça Sorulan Sorular
C#'ta getter ve setter'ların amacı nedir?
C#'ta getter ve setter'lar bir sınıfın özel özelliklerine erişimi kontrol etmek için kullanılır. Getter'lar bir özelliğin değerini alır, setter'lar ise bir özelliği değiştirmeye izin verir. Bu kapsülleme, sınıfın verilerine güvenli ve kontrollü erişim sağlar.
Erişim belirleyicileri, C#'ta özellik görünürlüğünü nasıl etkiler?
C#'ta public ve private gibi erişim belirleyicileri, bir sınıfın özelliklerinin görünürlüğünü ve erişilebilirliğini belirler. Public özellikler her yerden erişilebilirken, private özellikler, tanımlandıkları sınıfın içinde kısıtlanmış olur.
C#'ta otomatik uygulanan özellikler nedir?
Otomatik uygulanan özellikler, C#'ta özellikleri tanımlamak için kısa bir yol sunar. Ayrı bir alan, getter ve setter yazmadan bir özellik tanımlamanıza olanak tanır. Derleyici sizin için bir alan oluşturur.
C#'de salt okunur bir özelliği nasıl oluşturabilirsiniz?
C#'de, özellik bildiriminde setter kısmını ihmal ederek bir salt okunur özellik oluşturabilirsiniz. Bu, özelliğin yalnızca sınıf içinde, örneğin bir yapıcıda ayarlanabileceği ve dışarıdan değiştirilemeyeceği anlamına gelir.
C#'de özel setter'ları nasıl kullanırsınız?
C#'de özel setter'lar, bir özelliğin yalnızca bildirildiği sınıf içinde değiştirilmesine izin verirken, dış kodun özelliği okumasına olanak tanır. Bu, verilerin bütünlüğünü korurken kontrollü erişim sağlamak için yararlıdır.
C#'de türetilmiş sınıflarda özellik davranışını geçersiz kılabilir misiniz?
Evet, C#'de temel sınıfta özellik virtual olarak işaretleyerek ve türetilmiş sınıfta override anahtar kelimesini kullanarak türetilmiş sınıflarda özellik davranışını geçersiz kılabilirsiniz. Bu, getter ve setter davranışının özelleştirilmesini sağlar.
C# ile HTML'yi PDF'e nasıl dönüştürebilirsiniz?
HTML dizgilerini PDF'lere dönüştürmek için IronPDF'nin RenderHtmlAsPdf yöntemini kullanabilirsiniz. Ayrıca RenderHtmlFileAsPdf kullanarak HTML dosyalarının PDF'lere dönüştürülmesini de sağlayabilirsiniz.
C# geliştirmesini PDF ve barkod işlevsellikleriyle geliştirmek için hangi araçlar mevcuttur?
Iron Suite, IronPDF ve IronBarcode gibi araçlar sunarak C# geliştirmesini PDF yönetimi ve barkod okumayazma gibi işlevler sunarak güçlendirir. Bu araçlar C# projelerine sorunsuz bir şekilde entegre olur.
Iron Suite'i C# geliştiricileri için faydalı kılan nedir?
Iron Suite, C# projeleriyle sorunsuz bir şekilde entegre olan bir dizi güçlü araç sunduğu için C# geliştiricileri için faydalıdır. Bu araçlar, PDF yönetimi, Excel manipülasyonu, OCR yetenekleri ve barkod okumayazma gibi gelişmiş işlevler sunar.




