问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c#中partial的作用是什么?

发布网友 发布时间:2022-05-29 04:45

我来回答

3个回答

热心网友 时间:2024-09-17 14:26

1. 什么是局部类型?

C# 2.0 引入了局部类型的概念。局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。

局部类型适用于以下情况:

(1) 类型特别大,不宜放在一个文件中实现。
(2) 一个类型中的一部分代码为自动化工具生成的代码,不宜与我们自己编写的代码混合在一起。
(3) 需要多人合作编写一个类。

局部类型是一个纯语言层的编译处理,不影响任何执行机制——事实上C#编译器在编译的时候仍会将各个部分的局部类型合并成一个完整的类。
public partial class Program
{
static void Main(string[] args)
{
}
}

partial class Program
{
public void Test()
{
}
}

2. 局部类型的*

(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 {}

热心网友 时间:2024-09-17 14:26

部分,通常加在class前,想窗体,web中都有,C# 2.0 引入了局部类型的概念。局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。
局部类型适用于以下情况:
(1) 类型特别大,不宜放在一个文件中实现。
(2) 一个类型中的一部分代码为自动化工具生成的代码,不宜与我们自己编写的代码混合在一起。
(3) 需要多人合作编写一个类。
局部类型是一个纯语言层的编译处理,不影响任何执行机制——事实上C#编译器在编译的时候仍会将各个部分的局部类型合并成一个完整的类。
public partial class Program
{
static void Main(string[] args)
{
}
}

partial class Program
{
public void Test()
{
}
}

热心网友 时间:2024-09-17 14:27

在.net2.0中,partial可以将一个类分散在多个文件中写,编译起来,程序会认为这就是一个类。
例如:
//test1.cs文件
namespace Test
{
public partial class TS
{ }
}
//test2.cs文件
namespace Test
{
public partial class TS
{ }
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
华丽转身为什么在优酷看不了了之 《华丽转身:爱情不在服务区》txt全集下载 翡翠台华丽转身英文曲 matplotlib中plt.imshow函数画图出现的颜色问题 数字图像处理(c++ opencv):形态学图像处理-提取连通域 ...opencv做东西,网上的程序读着还可以,程序遇到问题不会改,一些函_百... 深度学习面试问题总结 | 传统图像处理——OpenCV 活虾如何在晚上保持存活状态进行保存? neu代表什么意思 民办学校和私立学校的区别是什么民办学校和私立学校的区别 武汉市聆熠科技有限公司怎么样? 指间之光(武汉)文化科技有限公司怎么样? OTC药品包装我们主要看什么? 农业用硫酸钾 罗布泊钾肥的罗布泊牌硫酸钾对农业产品有些什么功效? 硫酸钾复合肥与氯化钾复合肥具体有什么区别,分别用在什么作物上 咸鱼客服 邢台市红星街捏脚怎么样 我不是同性恋 外牌车高峰时间从浦东机场到光新路怎么走? 英国是怎样从一个迫害同性恋的国家变成“腐国”?有没有这方面的书籍... 泾惠路去上海动物园如何乘公交车不乘地铁 同性恋:持着前怕狼后怕虎的心理会带来什么样的结果呢? 枣庄去兰陵的高速怎么走 同性恋婚姻法是否该在大陆通过 男方是同性恋,想要离婚,女方不同意,请教如何解决? 同性恋在中国是犯法的吗?有没有专门针对同性恋的法律?同性恋就应该被唾... les 现实 两个女的 能不能结婚? = = 有法律规定不能结婚吗? 起诉状离婚男同性恋怎么写? 同性恋假结婚是否可行? 武汉大众印象文化传媒有限公司怎么样? 网课学习不好被老师批评怎么写检讨100 字? 如何恢复硬盘启动 农村5间平方、砖瓦方大约150平米、能卖多少线? 北京市通州区建筑装饰装修企业资质怎么办理 在北京如何办理建筑企业资质 北京首建伟业是如何办理建筑施工资质的? 帮忙翻译一段话。。We develop and test a theoretical model t... 五间平房有三间没门窗会怎样 14周年结婚纪念日的句子 夫妻俩2000年离婚五间平房各一半现在拆迁了有法律保护吗? 农村盖5间平房多少钱? 农村建五间平房需多少钱 我家是5间平房大门朝东风水? 抖音最火的结婚纪念日的句子爱你是种说不出的喜爱 农村五间一字平房地基打有圈梁,没有柱子,可以加二层吗? 我想盖一栋农村平房5间大可是不知道该怎么设计房间 自己家院子里的两处房左侧平房5间右侧3间二层楼好不好 山东农村五间平房座北朝南带院大门怎么开? 5间平房顶可以并排3个烟囱吗,风水学上好吗