《C#高级编程》笔记系列第三弹-partial关键字

简介:
 我们在开发WinForm时,经常会看到 partial 关键字,比如,我们新建一个Windows Form时,后台代码自动添加如下:
1  public  partial  class  Form1 : Form
2  {
3       public  Form1()
4      {
5          InitializeComponent();
6      }
7  }
    
    《C#高级编程》书中说明: partial关键字允许把类、结构或接口放在多个文件中。一般情况下,一个类存储在单个文件中,但有时,多个开发人员需要访问同一个类,或者某种类型的代码生成器生成了一个类的某部分,所以把类放在多个文件中是有益的。

    也就是说,我们定义的一个类可以分开几个文件来存储,而各个文件都只是完成这个类的一部分功能。我们在使用这个类时,根本体会不到这个类是由几部分结合在一起共同组成的。比如我分别在两个地方定义了Box类的一部分:
public  partial  class  Box
{
    
public  Box( string  newBoxName)
    {
        boxName 
=  newBoxName; // 在这个部分类中,并没有出现boxName局部变量。但是却是可以使用的。
    }
    
public   void  Open()
    {
// 打开盒子
        Console.WriteLine(boxName  +   "  is opened " );
    }
}
public  partial  class  Box
{
    
private   string  boxName  =   string .Empty; // boxName是在这个部分类中定义的哦
     public   void  Close()
    {
// 关闭盒子
        Console.WriteLine(boxName  +   "  is closed " );
    }
};

    上面的代码等同于下面的Box类:

public   class  Box
{
    
private   string  boxName  =   string .Empty;
    
public  Box( string  newBoxName)
    {
        boxName 
=  newBoxName;
    }
    
public   void  Open()
    {
// 打开盒子
        Console.WriteLine(boxName  +   "  is opened " );
    }
    
public   void  Close()
    {
// 关闭盒子
        Console.WriteLine(boxName  +   "  is closed " );
    }
}
    
    书中还有一段: 在把部分类编译到类型中时,会合并属性、XML注释、接口、一般类型的参数属性和成员。
    

    所以自己可以去设计一些小Demo去尝试一下。现在回到最开始的问题,为什么新建立的Winows Form的类定义成了一个部分类。我们打开Form1.Designer.cs文件,可以看到,原来Form1的另一部分类是在这个文件中设计的。这个部分类中定义了我们使用的控件、事件委托以及如Dispose方法等。因为这里面的代码都是自动生成的,因此设计成了一个部分类。OK,原来partial如此简单,就到这啦!



本文转自CoderZh博客园博客,原文链接:http://www.cnblogs.com/coderzh/archive/2007/10/28/940444.html,如需转载请自行联系原作者

目录
相关文章
|
8月前
|
C#
30.C# 关键字 this初步学习
30.C# 关键字 this初步学习
48 1
|
3月前
|
开发框架 Cloud Native .NET
10 个 C# 关键字和功能
10 个 C# 关键字和功能
74 8
|
3月前
|
算法 安全 测试技术
C#——刘铁猛笔记
C#——刘铁猛笔记
70 0
|
5月前
|
C# 索引
C#中的virtual和override关键字
C#中的virtual和override关键字
54 3
|
5月前
|
开发框架 .NET C#
【Azure Developer】C# / .NET 静态函数中this关键字的作用
【Azure Developer】C# / .NET 静态函数中this关键字的作用
|
6月前
|
开发框架 .NET C#
【Azure Developer】C# / .NET 静态函数中this关键字的作用
在C#中,`this`关键字用于扩展方法,允许向已有类型添加功能而不修改其源代码。扩展方法必须在静态类中定义,且第一个参数使用`this`修饰,如`public static XElement AcquireElement(this XContainer container, string name, bool addFirst = false)`。这种方式增强了代码的可读性和类型的安全性,尤其在处理第三方库时。
|
5月前
|
C# 计算机视觉
C#中out关键字
C#中out关键字
72 0
|
5月前
|
编译器 C# 计算机视觉
C#中的ref关键字
C#中的ref关键字
76 0
|
7月前
|
关系型数据库 C# 数据库
技术笔记:MSCL超级工具类(C#),开发人员必备,开发利器
技术笔记:MSCL超级工具类(C#),开发人员必备,开发利器
65 3
|
7月前
|
开发框架 安全 .NET
C#关键字概览
C#关键字概览