原先Form1的另一部分类是在这里个文件中设计的

Partial关键词定义的类能够在两个地点被定义,最终编写翻译的时候会被看做八个类来管理。

首先看一段在C#中日常出现的代码,分界面和后台分离,不过类名同样。

图片 1

public partial class Form1 : Form
{
    public Form1()
     {
         InitializeComponent();
     }
}

图片 2

内部使用了partial,大家开垦Form1.Designer.cs文本,能够见见,原本Form1的另一部分类是在此个文件中规划的。那些片段类中定义了大家利用的控件、事件委托以至如Dispose方法等。因为这里面包车型客车代码都以自动生成的,因而安排成了八个有些类。

Partial是局部类型的意趣。允许大家将三个类、结构或接口分成多少个部分,分别达成在多少个例外的.cs文件中。C#编写翻译器在编写翻译的时候仍会将次第部分的有的类型合併成一个完完全全的类

一对类型适用于以下意况:
(1) 类型非常大,不宜放在多少个文书中落实。
(2) 多少个门类中的一局地代码为自动化学工业具生成的代码,不宜与大家通力合作编写的代码混合在共同。
(3) 供给几个人搭档编写四个类。

一些类型的限量
(1) 局地类型只适用于类、接口、结构,不帮忙委托和枚举。
(2) 同二个品类的相继部分必需都有修饰符 partial。
(3) 使用部分类型时,四个档期的顺序的逐个部分必需放在同一的命名空间中。
(4) 一个类型的相继部分必得被同不日常间编译。

3. 片段类型的举世瞩目点

(1) 关键字partial是多个上下文关键字,独有和 class、struct、interface 放在一起时才有重中之重字的意思。由此partial的引进不会潜濡默化现存代码中名字为partial的变量。
(2) 局地类型的顺序部分经常是分开放在几个例外的.cs文件中,但C#编写翻译器允许我们将他们放在同样文件中。

4. 局地类型的应用本性
在有个别类型上的特色具备“累计”效应。

[Attribute1, Attribute2("Hello")]
partial class Class1{}

[Attribute3, Attribute2("Exit")]
partial class Class1{}

相当于

[Attribute1, Attribute2("Hello"), Attribute3, Attribute2("Exit")]
class Class1 {}

注:Attribute2属性允许在类上往往用到。

5. 有些类型上的修饰符

(1) 几个类型的逐个部分上的拜见修饰符必需维持一致性。
(2) 假设一个连串有三个局地使用了abstract修饰符,那么万事类都将被视为抽象类。
(3) 要是二个项目有二个局地应用了 sealed 修饰符,那么万事类都将被视为密封类。
(4) 二个类的相继部分无法使用相互冲突的修饰符,举个例子无法在二个某个上应用abstract,又在另一个有个别上利用sealed。

6. 片段类型的基类和接口

(1) 四个门类的逐个部分上点名的基类必得一致。有些部分能够不点名基类,但假设钦赐,则必得一律。
(2) 局地类型上的接口具备“累积”效应。

partial class Class2: Iinterface1, Iinterface2 {}
partial class Class2: Iinterface3 {}
partial class Class2: Iinterface2 {}

相当于

class Class2: Iinterface1, Iinterface2, Iinterface3 {}

时间会记录下全部。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website