C#, kaynak kodunu ayrı dosyalara yazmak ve tek bir birim olarak derlemek için bir konsept sağlar. Bu özelliğe partial type denir ve C# 2.0’da bulunur. Partial anahtar kelime, partial türler oluşturmak için kullanılır.
C# Partial Class
C#’ta, bir sınıfın (class), bir struct (yapının), bir metodun veya bir interface’in uygulanmasını, partial anahtar kelimesini kullanarak birden çok .cs dosyasına bölebilirsiniz. Derleyici, program derlendiğinde birden çok .cs dosyasındaki tüm bu uygulamaları birleştirecektir.
Örneğin, Employee sınıfını içeren aşağıdaki EmployeeProps.cs ve EmployeeMethods.cs dosyalarını inceleyelim.
EmployeeProps.cs
public partial class Employee
{
public int EmpId { get; set; }
public string Name { get; set; }
}
EmployeeMethods.cs
public partial class Employee
{
//constructor
public Employee(int id, string name)
{
this.EmpId = id;
this.Name = name;
}
public void DisplayEmpInfo()
{
Console.WriteLine(this.EmpId + " " + this.Name);
}
}
Yukarıda, EmployeeProps.cs, Employee sınıfının propertylerini (özelliklerini) içerir ve EmployeeMethods.cs, Employee sınıfının tüm metotlarını içerir. Tüm bu sınıflar derlendiği zaman bir Employee sınıfı olarak derlenecektir. Tek başına aşağıda ki gibi bir Employee.cs yazmış gibi.
Employee.cs
public class Employee
{
public int EmpId { get; set; }
public string Name { get; set; }
public Employee(int id, string name){
this.EmpId = id;
this.Name = name;
}
public void DisplayEmpInfo(){
Console.WriteLine(this.EmpId + " " this.Name );
}
}
Partial Class Kuralları
Tüm partial sınıf tanımları aynı assembly ve namespace de olmalıdır.
Tüm parçalar, public veya private vb. gibi aynı erişilebilirliğe sahip olmalıdır.
Herhangi bir parça abstract, sealed veya base tip olarak bildirilirse, tüm sınıf aynı tipte bildirilir.
Farklı parçalar farklı temel tiplere sahip olabilir ve bu nedenle son sınıf tüm temel tipleri miras alacaktır.
Partial anahtar kelimesi, yalnızca class, struct veya interface den hemen önce görünebilir.
C# Partial Metot
Partail class veya struct, partail class veya struct’ın iki ayrı .cs dosyasına ayrılan bir metodu içerebilir. İki .cs dosyasından biri, metodun imzasını içermelidir ve diğer dosya, partial metodun isteğe bağlı bir uygulamasını içerebilir. Bir metodun hem bildirimi hem de uygulanması, partial anahtar kelimeye sahip olmalıdır.
EmployeeProps.cs
public partial class Employee
{
public Employee() {
GenerateEmpId();
}
public int EmpId { get; set; }
public string Name { get; set; }
partial void GenerateEmployeeId();
}
EmployeeMethods.cs
public partial class Employee
{
partial void GenerateEmployeeId()
{
this.EmpId = random();
}
}
Partial Metot Kuralları
- Partial metotlar, partial anahtar kelimeyi kullanmalı ve void döndürmelidir.
- Partial metotlarda in veya ref olabilir, ancak out parametreleri olamaz.
- Partial metotlar dolaylı olarak özel metotlardı, bu nedenle virtual olamazlar.
- Partial metotlar statik metotlar olabilir.
- Partial metotlar generic metotlar olabilir.
One comment
Comments are closed.