Bu yazıda C # 'da kısmi sınıf ve kısmi yöntemlerin nasıl ve neden uygulanacağını öğreneceğiz.
Bir sınıf tanımını bölmeniz gerekebilecek birçok durum vardır, örneğin büyük ölçekli projeler üzerinde çalışırken, birden çok geliştirici ve programcının aynı anda aynı sınıfta çalışması gerekebilir. Bu durumda Kısmi Sınıf adlı bir özelliği kullanabiliriz .
Kısmi Sınıfa Giriş
C # (veya OOP) ile programlama yaparken, bir sınıfın tanımını iki veya daha fazla kaynak dosyaya bölebiliriz. Kaynak dosyalar, sınıf tanımının bir bölümünü içerir ve uygulama derlendiğinde tüm parçalar birleştirilir. Bir sınıf tanımını bölmek için partial
anahtar kelimeyi kullanmamız gerekir .
Örnek 1:
HeightWeightInfo
Boyu ve ağırlığı gösteren bir projemiz var .
File1.cs
Record adlı kısmi bir sınıfa sahip olarak adlandırılmış bir dosyamız var . İki tamsayı değişkeni h & w ve h & w değerlerini atayan Record adlı bir yöntem / kurucu vardır.
namespace HeightWeightInfo ( class File1 ( ) public partial class Record ( private int h; private int w; public Record(int h, int w) ( this.h = h; this.w = w; ) ) )
Burada, yalnızca PrintRecord yöntemine sahip olan aynı kısmi sınıfa sahip File2.cs adlı başka bir dosya var. Bu yöntem, h & w değerlerini gösterecektir.
namespace HeightWeightInfo ( class File2 ( ) public partial class Record ( public void PrintRecord() ( Console.WriteLine("Height:"+ h); Console.WriteLine("Weight:"+ w); ) ) )
Şimdi burada projenin ana yöntemini görebiliriz:
namespace HeightWeightInfo ( class Program ( static void Main(string() args) ( Record myRecord = new Record(10, 15); myRecord.PrintRecord(); Console.ReadLine(); ) ) )
Burada, 10 ve 15 olarak parametre değerlerini sırasıyla h ve w'ye içinde tanımlanan yönteme geçiren MyRecord olarak Record sınıfının nesnesine sahibiz File1.cs
.
PrintRecord yöntemi, .mRecord dosyasında tanımlanan nesne tarafından çağrılır File2.cs
.
Bu, partial
anahtar kelimenin çeşitli dosyalarda tanımlanan bir sınıfın tüm özniteliklerinin tek bir sınıf olarak çalışacak şekilde birleştirilmesine yardımcı olduğunu gösterir .
Rehber partial
sınıf kullanılabilir:
- Birden fazla geliştirici ile daha büyük projeler üzerinde çalışırken, geliştiricilerin aynı sınıf üzerinde aynı anda çalışmasına yardımcı olur.
- Kodlar, IDE tarafından otomatik olarak oluşturulan kaynak dosyaları (yani Visual Studio) yeniden oluşturmadan sınıfa eklenebilir veya değiştirilebilir.
Kısmi Sınıf Hakkında Hatırlanması Gerekenler
partial
Sınıfın diğer parçaları ad alanında tanımlanan edilebileceğini belirtmek için, anahtar. Bir sınıfı kısmi yapmaya çalışıyorsak kısmi anahtar sözcüğünü kullanmak zorunludur. Sınıfın tüm bölümleri aynı ad alanında olmalı ve derleme zamanında son türü oluşturmak için kullanılabilir olmalıdır. Tüm bölümler aynı erişim değiştiriciye sahip olmalıdır; ör. Özel, genel, vb.
- Herhangi bir bölüm soyut olarak bildirilmişse, tüm tip soyut olarak kabul edilir.
- Herhangi bir parçanın mühürlendiği beyan edilirse, tüm tip mühürlü kabul edilir.
- Herhangi bir parça bir temel tip bildirirse, tüm tip bu sınıfı miras alır.
- Kısmi bir tanımda bildirilen herhangi bir sınıf üyesi, diğer tüm parçalar için kullanılabilir.
- Kısmi bir sınıfın tüm parçaları aynı ad alanında olmalıdır.
** Not:partial
modifiye temsilci veya sıralama beyanlarına kullanılamaz
Kısmi Yöntemlere Giriş
Kısmi bir sınıf, kısmi bir yöntem içerebilir. Sınıfın bir bölümü yöntemin imzasını içerir. İsteğe bağlı bir uygulama aynı kısımda veya başka bir kısımda tanımlanabilir. Uygulama sağlanmadıysa, yöntem ve tüm çağrılar derleme zamanında kaldırılır.
Örnek 2:
InitializeCar (), BuildRim () ve BuildWheels () olmak üzere üç yöntemi olan kısmi bir sınıf olarak Car
tanımlanmış bir örnek alalım file1.cs
. Bu yöntemler arasında InitializeCar, olarak tanımlanır partial
.
public partial class Car ( partial void InitializeCar(); public void BuildRim() ( ) public void BuildWheels() ( ) )
Ayrıca file2.cs
BuildEngine ve InitializeCar adlı iki metodu olan başka bir dosyamız var . InitializeCar yöntemi, içinde tanımlanan kısmi bir yöntemdir file1.cs
.
public partial class Car ( public void BuildEngine() ( ) partial void InitializeCar() ( string str = "Car"; ) )
Kısmi yöntem bildirimi iki bölümden oluşur:
- Tanımı olduğu gibi
file1.cs
. - Uygulama olduğu gibi
file2.cs
.
Kısmi sınıfın ayrı bölümlerinde veya aynı bölümde olabilirler.
Kısmi Yöntem hakkında hatırlanması gerekenler
partial
anahtar kelime.- dönüş türü
void
. - dolaylı olarak
private
. - ve olamaz
virtual
.