首页 后端开发 C#.Net教程 C#里partial关键字的作用(转摘)

C#里partial关键字的作用(转摘)

Dec 14, 2016 pm 02:57 PM

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。
(5)如果一个部分类使用了 static修饰符,那么整个类都将被视为静态类。


6. 局部类型的基类和接口

(1) 一个类型的各个部分上指定的基类必须一致。某个部分可以不指定基类,但如果指定,则必须相同。
(2) 局部类型上的接口具有“累加”效应。

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


相当于

class Class2: Iinterface1, Iinterface2, Iinterface3 {}

想要更多的相关文章请关注PHP中文网(www.php.cn)!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

深入解析C语言中static关键字的作用和用法 深入解析C语言中static关键字的作用和用法 Feb 20, 2024 pm 04:30 PM

深入解析C语言中static关键字的作用和用法在C语言中,static是一种非常重要的关键字,它可以被用于函数、变量和数据类型的定义上。使用static关键字可以改变对象的链接属性、作用域和生命周期,下面就来详细地解析一下static关键字在C语言中的作用和用法。static变量和函数:在函数内部使用static关键字定义的变量称为静态变量,它具有全局生命周

C语言中go是关键字吗?详细解析 C语言中go是关键字吗?详细解析 Mar 16, 2024 am 10:30 AM

标题:C语言中go是关键字吗?详细解析在C语言中,"go"并不是一个关键字。C语言的关键字是由C标准规定的,用于表示特定的语法结构或者功能,在编译器中有特殊的含义,不能被用作标识符或者变量名。例如,关键字"int"表示整型数据类型,"if"表示条件语句等等。如果我们想验证在C语言中"go"是否是关键字,可以编写一个简单的程序进行测试。下面是一个例子:#inc

PHP中var关键字的作用和示例 PHP中var关键字的作用和示例 Jun 28, 2023 pm 08:58 PM

PHP中var关键字的作用和示例在PHP中,var关键字用于声明一个变量。以前的PHP版本中,使用var关键字是声明成员变量的惯用方式,现在已经不再推荐使用。然而,在某些情况下,var关键字依然会被使用。var关键字主要用于声明一个局部变量,并且会自动将该变量标记为局部作用域。这意味着该变量仅在当前的代码块中可见,并且不能在其他函数或代码块中访问。使用var

c语言中关键字有多少个 c语言中关键字有多少个 Nov 22, 2022 pm 03:39 PM

C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。数据类型关键字有12个,包括char、double、float、int等;控制语句关键字有12个,包括for、break、if、else、do等;存储类型关键字有4个,包括auto、static、extern等;其它关键字有4个,包括const、sizeof等。

go语言中while是关键字吗 go语言中while是关键字吗 Jun 04, 2021 pm 05:01 PM

在go语言中,while不是关键字,可以用for语句加break来实现while循环的效果,例“for {sum++ if sum>10{break}else{...}}”。go语言有break、default 、func、select、case、defer、go、map、else、goto、for、if、var等25个关键字。

go语言关键字大全 go语言关键字大全 Apr 07, 2024 pm 02:15 PM

Go语言的关键字有:基本关键字:const、func、type、var、if、else、for、return数据类型相关关键字:bool、string、int、float64、interface{}、map、slice其他关键字:break、continue、defer、go、select、range

PHP中extends关键字的作用和使用方法详解 PHP中extends关键字的作用和使用方法详解 Jun 28, 2023 pm 08:04 PM

PHP中extends关键字的作用和使用方法详解在PHP编程中,extends是一个非常重要的关键字,它用于实现类的继承。通过extends关键字,我们可以创建一个新的类,这个新类可以继承一个或多个已有的类的属性和方法。继承是面向对象编程中的重要概念,它使得代码的复用和扩展变得更加方便和灵活。本文将详细介绍extends关键字的作用和使用方法。extends

PHP中require关键字的作用和使用方法详解 PHP中require关键字的作用和使用方法详解 Jun 28, 2023 pm 11:31 PM

PHP中require关键字的作用和使用方法详解在PHP开发中,require是一个非常常用的关键字。它的作用是将指定的文件包含进来,以供当前脚本使用。本文将详细讲解require关键字的作用和使用方法。一、require关键字的作用require关键字可以将一个文件的内容包含到当前脚本中。它通常用于包含一些必要的外部文件,比如库文件、配置文件等。使用req

See all articles