`

C#里partial关键字的作用

    博客分类:
  • C#
 
阅读更多
转自
http://www.cnblogs.com/OpenCoder/archive/2009/10/27/1590328.html


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 {}
分享到:
评论

相关推荐

    C# partial关键字说明

    【C# partial关键字说明】 C#中的`partial`关键字是一个非常实用的功能,它允许开发者将一个类、结构或接口的定义分散到多个源文件中,从而提高代码组织性和可维护性。局部类型(即使用`partial`关键字声明的类型)...

    C#中partial关键字的作用

    C#中partial关键字的作用 partial关键字是C#语言中一个非常重要的概念,它允许将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中,从而提高了代码的可维护性和可读性。 局部类型的概念 ---------...

    详解C# partial 关键字的使用

    C#中的`partial`关键字是为了解决大型代码组织和模块化而引入的特性,它允许我们将一个类、结构或接口的定义分散到多个源文件中。这种做法有助于提高代码的可读性和管理性,特别是在大型项目或者由多个开发者协同...

    c# 关键字 微软官方文档

    例如 partial 关键字用于部分类或方法的定义,in 和 out 可以作为泛型修饰符使用,而 out 还可以作为输出参数修饰符。 此外,C#还引入了几个特殊的字面量关键字,它们分别对应于不同的常量值,如 true、false、null...

    关键字 Partial 的用法

    在C#编程语言中,`partial`关键字是一个非常实用的功能,它允许我们将一个类、结构或接口的定义分散到多个源代码文件中。这个特性在处理大型复杂类时尤其有用,因为它可以提高代码的可读性和管理性。下面将详细探讨`...

    C# 关键字 全部 及 使用 链接

    在C#中,关键字是具有特殊含义的语言保留字,它们在程序中扮演着至关重要的角色,用来定义变量、控制流程、声明类型以及实现各种语言特性。下面将详细介绍C#中的关键字,并给出其用途和用法。 1. **访问修饰符**: ...

    这是关于《分部类(partial)和方法》的示例程序

    在C#编程语言中,`partial`关键字是一个非常重要的特性,它允许我们将一个类的定义分散到多个源文件中。这种做法在处理大型类或代码生成工具生成的类时特别有用,因为它提供了更好的代码组织和管理。让我们深入探讨...

    C#入门学习资料PDF

    它们不是C#语言的关键字,但在特定的编程结构中具有特殊的作用。例如,partial可以是类声明的一部分,表示一个类或方法定义是分部的,而where可以是泛型类型的约束条件或者查询子句中的一部分。 C#提供多种运算符,...

    C#常用c#c#c#c#

    在 C# 中,`partial` 关键字用于指定某个类、结构或方法的定义可以跨越多个文件。这是在大型项目中组织代码的一种有效方式。例如,你可以这样定义一个部分类: ```csharp partial class MyClass { // 部分定义 } ...

    C中的关键字大全.pdf

    C#关键字大全 C#中的关键字是对编译器具有特殊意义的预定义保留标识符。它们不能在程序中用作标识符,除非它们有一个 @ 前缀。例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字。 修饰符是用于修改类型和...

    ASP.NET 2.0中的partial

    **3.1 关键字`partial`的作用** `partial`关键字是局部类型的核心标志,只能用于`class`、`struct`和`interface`的定义中。需要注意的是,仅使用`partial`关键字并不意味着这个类型就是局部类型,它必须与另一个带...

    新一代C#2005(源代码)

    10. **Partial类**:partial关键字允许将一个类的定义分散到多个文件中,便于大型项目的组织和管理。 通过《新一代C#2005》的源代码,读者可以深入了解这些特性的实现原理和使用场景,从而更好地掌握C# 2005的精髓...

    程序天下:c#2.0实例自学手册

    6. ** partial 类**:partial关键字允许将一个类的定义分成多个文件,方便大型项目的代码组织和管理。 7. **匿名类型**:C#2.0允许创建没有明确名称的类型,常用于LINQ查询表达式,以临时存储查询结果。 8. **...

    C# 3.0 个人理财管理系统

    9. **Partial 类**:大型项目中,为了更好地组织代码,常常使用partial关键字将一个类的定义分为多个部分。在个人理财管理系统中,每个类可能分布在多个文件中,用partial关键字连接。 10. **数据库访问**:可能...

    C#2.0完全参考手册源代码

    7. **Partial类**:partial关键字允许将类定义分布在多个源文件中,有助于代码组织和大型项目的开发。 8. **迭代器与yield break**:`yield break`语句用于在迭代器中结束迭代,是控制迭代流程的关键。 9. **匿名...

Global site tag (gtag.js) - Google Analytics