局部类是C#的一项特殊功能。它提供了一种特殊功能,可将单个类的功能实现为多个文件,并且在编译应用程序时将所有这些文件组合为单个类文件。通过使用局部关键字创建局部类。此关键字对于将方法,接口或结构的功能拆分为多个文件也很有用。
句法 :
public partial Clas_name
{
// code
}
要点:
- 如果要将类,方法,接口或结构的功能分成多个文件,则应使用partial关键字,并且所有文件都是必需的,以便在编译时可用以创建最终文件。
- 部分修饰符只能立即出现在诸如struct,class和interface之类的关键字之前。
- 部分类定义的每个部分都应该在相同的程序集和名称空间中,但是可以使用不同的源文件名。
- 部分类定义的每个部分都应具有与private,protected等相同的可访问性。
- 如果部分类的任何部分被声明为抽象,密封或基类,则整个类将被声明为同一类型。
- 还允许用户使用嵌套的部分类型。
- 不同的部分可能具有不同的基本类型,但是最终类型必须继承所有基本类型。
示例:在这里,我们使用一个名为Geeks的类,并将Geeks类的定义分为两个不同的文件,分别名为Geeks1.cs和Geeks2.cs,如下所示:
在Geeks1.cs和Geeks2.cs中,使用partial关键字创建了一个部分类,并且每个文件都包含Geeks类的不同功能,如下所示。
极客1.cs
C#
public partial class Geeks {
private string Author_name;
private int Total_articles;
public Geeks(string a, int t)
{
this.Authour_name = a;
this.Total_articles = t;
}
}
C#
public partial class Geeks {
public void Display()
{
Console.WriteLine("Author's name is : " + Author_name);
Console.WriteLine("Total number articles is : " + Total_articles);
}
}
C#
public class Geeks {
private string Author_name;
private int Total_articles;
public Geeks(string a, int t)
{
this.Authour_name = a;
this.Total_articles = t;
}
public void Display()
{
Console.WriteLine("Author's name is : " + Author_name);
Console.WriteLine("Total number articles is : " + Total_articles);
}
}
Geeks2.cs
C#
public partial class Geeks {
public void Display()
{
Console.WriteLine("Author's name is : " + Author_name);
Console.WriteLine("Total number articles is : " + Total_articles);
}
}
当我们执行上述代码时,编译器将Geeks1.cs和Geeks2.cs组合到一个文件中,即Geeks,如下所示。
怪胎此类可能包含Main方法。为简单起见,此处不包括Main()方法。
C#
public class Geeks {
private string Author_name;
private int Total_articles;
public Geeks(string a, int t)
{
this.Authour_name = a;
this.Total_articles = t;
}
public void Display()
{
Console.WriteLine("Author's name is : " + Author_name);
Console.WriteLine("Total number articles is : " + Total_articles);
}
}
好处 :
- 借助局部类,多个开发人员可以在同一个类中的不同文件中同时工作。
- 借助局部类概念,您可以拆分设计代码和业务逻辑代码的UI,以读取和理解该代码。
- 使用自动生成的代码时,可以将代码添加到类中,而不必像在Visual Studio中那样重新创建源文件。
- 您还可以通过将大型类压缩为小型类,从而以高效的方式维护应用程序。