分部类(Partial Classes)

分部类(Partial Classes)

分部类(Partial Classes)
                                      网上淘来的 很好 呵呵~分部类(Partial Classes)

C# 2.0 可以将类、结构或接口的定义拆分到两个或多个源文件中,在类声明前添加partial关键字即可。

例如:下面的PartialTest

class PartialTest

{

string Str_FieldTest;

int Int_FieldTest;

public void DoTest()

{

Debug.Print(“Test”);

}

}

可在不同源文件中写成下面形式:

一个文件中写:

partial class PartialTest

{

string Str_FieldTest;

int Int_FieldTest;

}

另一个文件中写:

partial class PartialTest

{

public void DoTest()

{

Debug.Print(“Test”);

}

}

什么情况下使用分部类?

        处理大型项目时,使一个类分布于多个独立文件中可以让多位程序员同时对该类进行处理(相当于支持并行处理,很实用);

        使用自动生成的源时,无需重新创建源文件便可将代码添加到类中。Visual Studio 在创建Windows 窗体、Web 窗体时都使用此方法。你不用编辑Visual Studio 所创建的文件,便可创建使用这些类的代码。换句话说:系统会自动创建一个文件(一般记录的是窗体及窗体中的控件的属性),另一个或几个文件记录的是用户自己编写的代码。这两部分分开可以使结构显得非常清晰,用户只需关注自己负责的那部分就行了(需要的话,这两部分可以互相调用)。等到了编辑运行的时候,系统会自动将这两部分合成一个文件。

使用Partial需要注意以下一些情况

1.      使用partial 关键字表明可在命名空间内定义该类、结构或接口的其他部分

2.      所有部分都必须使用partial 关键字

3.      各个部分必须具有相同的可访问性,如publicprivate

4.      如果将任意部分声明为抽象的,则整个类型都被视为抽象的

5.      如果将任意部分声明为密封的,则整个类型都被视为密封的

6.      如果任意部分声明继承基类时,则整个类型都将继承该类

7.      各个部分可以指定不同的基接口,最终类型将实现所有分部声明所列出的全部接口

8.      在某一分部定义中声明的任何类、结构或接口成员可供所有其他部分使用

9.嵌套类型可以是分部的,即使它们所嵌套于的类型本身并不是分部的也如此。如下所示:

class Container

{

  partial class Nested

 {

void Test1();

}

partial class Nested

{

 void Test2();

}

}

使用分布类的一些限制:

1.    要作为同一类型的各个部分的所有分部类型定义都必须使用partial 进行修饰。如下所示:

public partial class A { }

public class A { } // Error, must also be marked partial

2.  partial 修饰符只能出现在紧靠关键字classstruct interface前面的位置(枚举或其它类型都不能使用partial);

3.  要成为同一类型的各个部分的所有分部类型定义都必须在同一程序集和同一模块(.exe .dll 文件)中进行定义。分部定义不能跨越多个模块;

4.  类名和泛型类型参数在所有的分部类型定义中都必须匹配。泛型类型可以是分部的。每个分部声明都必须以相同的顺序使用相同的参数名。

转载于:https://www.cnblogs.com/ivy/archive/2008/06/27/1230997.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111010.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java二维数组排序

    Java二维数组排序Java二维数组排序

    2022年4月29日
    48
  • 《深入浅出WPF》读书笔记

    《深入浅出WPF》读书笔记深入浅出 WPF 要点总结 感谢刘铁锰写出这么好的书

    2025年6月29日
    6
  • Redis 6379 被攻击

    Redis 6379 被攻击Redis6379被攻击刚开始使用redis,把端口打开了,然后没有设置密码,导致被恶意攻击,这里记录一下。[root@realguo~]#redis-cli127.0.0.1:6379>keys*1)”backup2″2)”backup1″3)”backup4″4)”backup3″127.0.0.1:6379>getbackup1″\n\n\n*/2****rootcd1-fsSLhttp://zzhreceive.anondn

    2022年5月12日
    57
  • pycharm默认编码_编码需要注意什么

    pycharm默认编码_编码需要注意什么这两天爬取东西的时候经常出现编码的问题,错误如下:UnicodeEncodeError:’gbk’codeccan’tencodecharacter’\xa9’inposition75:illegalmultibytesequ找了很多资料也没发现有用的,问了一些朋友也不知道,然后自己试着改了下pycharm的一些东西,就好了具体步骤:File–>Se…

    2022年8月27日
    3
  • 深入理解Java中的容器

    深入理解Java中的容器1 容器的概念在 Java 当中 如果有一个类专门用来存放其它类的对象 这个类就叫做容器 或者就叫做集合 集合就是将若干性质相同或相近的类对象组合在一起而形成的一个整体 2 容器与数组的关系之所以需要容器 1 数组的长度难以扩充 2 数组中数据的类型必须相同容器与数组的区别与联系 1 容器不是数组 不能通过下标的方式访问容器中的元素 2 数组的所有功能通过 Arraylist 容器

    2025年10月12日
    3
  • 让你轻松架设FTP服务器

    让你轻松架设FTP服务器你想架设你的FTP服务器吗?笔者将从IIS和第三方软件两个角度,教会你轻松架设FTP服务器的方法,让你玩转FTP服务器的架设。一、用IIS架设FTP服务器:1、设置FTP服务器:(1)设置“FTP站点”标签项:在“控制面板→管理工具→Internet服务管理器”窗口中,选中“默认FTP站点→右键→属性”,在图1的“默认FTP站点属性”框中,“IP地址”可以使用默认,端口号保持“2

    2022年7月21日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号