C#2.0 -- Partial Types

原创 2004年06月28日 13:31:00

19.1 Partial types

While it is good programming practice to maintain all source code for a type in a single file, sometimes a type becomes large enough that this is an impractical constraint. Furthermore, programmers often use source code generators to produce the initial structure of an application, and then modify the resulting code. Unfortunately, when source code is emitted again sometime in the future, existing modifications are overwritten.

Partial types allow classes, structs, and interfaces to be broken into multiple pieces stored in different source files for easier development and maintenance. Additionally, partial types allow separation of machine-generated and user-written parts of types so that it is easier to augment code generated by a tool.

A new type modifier, partial, is used when defining a type in multiple parts. The following is an example of a partial class that is implemented in two parts. The two parts may be in different source files, for example because the first part is machine generated by a database mapping tool and the second part is manually authored:

public partial class Customer
{
private int id;
private string name;
private string address;
private List<Order> orders;

public Customer() {
     ...
}
}

public partial class Customer
{
public void SubmitOrder(Order order) {
     orders.Add(order);
}

public bool HasOutstandingOrders() {
     return orders.Count > 0;
}
}

When the two parts above are compiled together, the resulting code is the same as if the class had been written as a single unit:

public class Customer
{
private int id;
private string name;
private string address;
private List<Order> orders;

public Customer() {
     ...
}

public void SubmitOrder(Order order) {
     orders.Add(order);
}

public bool HasOutstandingOrders() {
     return orders.Count > 0;
}
}

All parts of a partial type must be compiled together such that the parts can be merged at compile-time. Partial types specifically do not allow already compiled types to be extended.

C#2.0 Partial 特性

 Partial这是C#2.0的新特性 Partial关键字起到把一个class分段组合作用,能用于多个接口或一个继承代码片断:namespace Com.TommyLib{    public in...
  • geekone
  • geekone
  • 2005年03月03日 15:13
  • 1141

C# partial 说明

1. 什么是局部类型? C# 2.0 引入了局部类型的概念。局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。 局部类型适用于以下情况: (1) 类...
  • niemeiquan
  • niemeiquan
  • 2012年07月30日 14:00
  • 25142

C#2.0 Partial 特性

Partial这是C#2.0的新特性 Partial关键字起到把一个class分段组合作用,能用于多个接口或一个继承代码片断:namespace Com.TommyLib{    public int...
  • xiaoye210
  • xiaoye210
  • 2007年08月04日 23:59
  • 402

c#2.0语法新关键字 partial

 再里介绍了.NET1.1里C#的基本语法,这些语法再.NET2.0的C#里同样适用。不过 在ASP.NET2.0里增加了一个新的关键字partial,partial 关键字的作用是将你的 class...
  • qq366422923
  • qq366422923
  • 2009年11月26日 21:08
  • 157

C#2.0的分部类partial

分部类型定义允许将类、结构或接口的定义拆分到多个文件中。 简单的例子比如cs1.cs文件中Partial Class A {}Cs2.cs文件中       Partial Class A {}使用分...
  • ccp5780199
  • ccp5780199
  • 2007年09月02日 20:00
  • 564

不完全类型(Partial Types)

 【Partial Types】尽管在一个单独的文件中维护一个类型的所有代码是一项很好的编程实践,但有些时候,当一个类变得非常大,这就成了一种不切实际的约束。而且,程序员经常使用代码生成器来生成一个应...
  • doubleyou
  • doubleyou
  • 2008年01月28日 11:29
  • 228

C#2.0 : partial 关键字及 winform 体验

开始用 2.0 设计一个 winform 程序。当切换到代码里时,发现异乎寻常的干净。以前设计器生成的一堆代码不见了。在 Form1 的构造函数里,只有简单的一句:InitializeCompon...
  • inelm
  • inelm
  • 2005年06月28日 01:22
  • 376

C#2.0初涉及

看了一下午的C#2.0,感觉C#及其简单,也许是我没有怎么深入吧不管怎么说,对于C#有一点点概念了在VS.net2005下,一切的一切都被集成化了,在于.net框架使用了CLR(common lang...
  • sticklee
  • sticklee
  • 2008年01月05日 12:47
  • 394

【.Net码农】C#中的partial class(部分类)

C# 2.0 可以将类、结构或接口的定义拆分到两个或多个源文件中,在类声明前添加partial关键字即可。 例如:下面的PartialTest类 class PartialTest ...
  • CrackLibby
  • CrackLibby
  • 2016年07月26日 16:26
  • 1082

C#关键字partial在asp.net mvc中的应用

一、概念 一个产品级别的类很容易达到成百上千行代码。一个类定义在一个*.CS文件中,这就将导致代码文件非常长。在创建类时,大多数代码在确立之后基本上就不再改变了。例如:字段数据、属性和构造函数在...
  • wangzl1163
  • wangzl1163
  • 2017年01月07日 16:23
  • 1015
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#2.0 -- Partial Types
举报原因:
原因补充:

(最多只允许输入30个字)