面向对象——分部类

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

概念:可以将类、构造、接口拆分到两个或多个源文件中。每个源文件包含类定义的一部分,编译应用程序时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的位置。当违反上述规则后,将给出错误提示。


目录
相关文章
|
Ubuntu
Ubuntu安装aptitude
Ubuntu安装aptitude
366 0
uniapp轮播带查看大图效果demo示例、带数字的轮播(整理)
uniapp轮播带查看大图效果demo示例、带数字的轮播(整理)
|
传感器 数据采集 运维
ERP系统中的生产线监控与异常处理解析
【7月更文挑战第25天】 ERP系统中的生产线监控与异常处理解析
643 8
|
机器学习/深度学习 数据采集 算法
Python使用随机森林模型进行电影评分预测
Python使用随机森林模型进行电影评分预测
1894 1
Python使用随机森林模型进行电影评分预测
|
缓存 监控 安全
中间件在Python Web框架中的角色与应用场景
【7月更文挑战第21天】中间件在Python Web开发中作为服务器与应用间的软件层,拦截、处理请求和响应,无需改动应用代码。它扩展框架功能,复用跨应用逻辑,加强安全,优化性能。如Django中间件处理请求/响应,Flask通过WSGI中间件实现类似功能,两者均在不触及核心代码前提下,灵活增强应用行为,是现代Web开发关键组件。
278 0
|
Linux 开发工具
You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofi
linux配置环境变量操作失误出现:/usr/libexec/grepconf.sh: line 5: grep: command not found 的解决办法
495 2
GEC6818开发板触摸屏---点击屏幕获取触摸屏坐标
GEC6818开发板触摸屏---点击屏幕获取触摸屏坐标
|
存储 安全 Linux
|
Kubernetes Cloud Native Linux
容器引擎Docker与Podman解析
最近技术群里有朋友问我,不是说K8S要弃用Docker了吗?还要不要继续学习这块内容?是不是得改行卖白菜了?
724 0
容器引擎Docker与Podman解析
|
XML Java 数据库
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)(一)
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)
1028 0

热门文章

最新文章