面向对象——分部类

简介: 面向对象——分部类

概念:可以将类、构造、接口拆分到两个或多个源文件中。每个源文件包含类定义的一部分,编译应用程序时Visual Studio 会吧所有部分类组合起来。这样的类称为分部类。其应用场合:


当项目比较庞大时,使用分部类可以拆分一个类至几个文件中。这样的处理,可以使得不同的开发人员同时进行开发,避免了效率低下。

Visual Studio 的自动生成代码。如添加一个窗体是,Visual Studio会自动生成许多的代码使用分部类,将这些代码放在单独的文句中,可以使类更简洁,方便操作。

分部类使用partial 关键字定义。如下代码定义了一个分部类。


namespace JieKou


{

   class Program


   {

   


       static void Main(string[] args)


       {

           MyClass myClass = new MyClass();


           myClass.SayHello();


           myClass.SayHi();


       }


   }


   partial class MyClass


   {

       public void SayHello()


       {

           Console.WriteLine("Hello World");


       }


   }


   partial class MyClass


   {

       public void SayHi()


       {

           Console.WriteLine("Hi");


       }


   }


}


可以看到分部类的使用与普通类相同,只要在分部类中任意一个部分定义了相应的方法或者属性,都可以使用。用功能代码的存储。这是一种合理的分配方式。同样、接口或结构使用partial关键字来修饰


 partial interface IMyInterFace


   {

       void SayHello();


   }


   partial interface IMyInterFace


   {

       void SayHi();


   }


   class MyClass : IMyInterFace


   {

       public void SayHello()


       {

           Console.WriteLine("Hello World");


       }


       public void SayHi()


       {

           Console.WriteLine("Hi");


       }


}


使用分部类注意事项:


如果一个类前面加了partial关键字,说明该类是分部类,虽然并没有该类的其他部分,单C#依然将其作为分部类来处理。虽然这样写不会报错,但应该避免这种用法,不然会增加.NetFramework的负担,因为.NetFramework会搜索其他部分。

各个部分必须具有相同的可访问性,如public、private等。

分部类的各个部分必须都用partial限定,如果一部分是partial另外一部分不是,就会出现错误。

在两个部分分别使其继承了不同的类和接口,运行时.NetFramework能够很好地将其结合。

Partial关键字的位置必须位于紧接class、interface以及struct的位置。当违反上述规则后,将给出错误提示。


目录
相关文章
|
Java
Java面向对象程序设计综合练习2(填空题)(下)
Java面向对象程序设计综合练习2(填空题)(下)
1172 0
Java面向对象程序设计综合练习2(填空题)(下)
|
5月前
|
设计模式 数据可视化 测试技术
实践中的面向对象的例子
【7月更文挑战第1天】本文介绍面向对象编程注重代码的可理解性、重用和维护。例如,设计一个显示时间、温度等的设备,用户无需关心内部工作,这就是封装;如果需要多个设备,可通过多态创建不同实例;而继承则允许共享通用功能,如所有时钟都继承自计时器基类。
115 0
实践中的面向对象的例子
|
6月前
1047 编程团体赛 (20 分)
1047 编程团体赛 (20 分)
|
存储 Java
Java面向对象程序设计综合练习2(填空题)(上)
Java面向对象程序设计综合练习2(填空题)(上)
906 0
Java面向对象程序设计综合练习2(填空题)(上)
|
存储 编译器 C语言
C++之面向对象(上)(二)
C++之面向对象(上)(二)
94 0
|
SQL 存储 Java
Java面向对象程序设计综合练习1(选择题)(下)
Java面向对象程序设计综合练习1(选择题)(下)
1172 0
Java面向对象程序设计综合练习1(选择题)(下)
|
Java Python
Java面向对象程序设计综合练习1(选择题)(上)
Java面向对象程序设计综合练习1(选择题)(上)
561 0
Java面向对象程序设计综合练习1(选择题)(上)
|
存储 Java
Java面向对象程序设计综合练习3(填空题)
Java面向对象程序设计综合练习3(填空题)
117 0
Java面向对象程序设计综合练习3(填空题)
|
Java 容器
Java面向对象程序设计综合练习4(填空题)(下)
Java面向对象程序设计综合练习4(填空题)(下)
365 0
|
SQL Java 数据库连接
Java面向对象程序设计综合练习4(填空题)(上)
Java面向对象程序设计综合练习4(填空题)(上)
194 0