zoukankan      html  css  js  c++  java
  • c#2.0语法新特定

     再<ASP.NET技术详解与应用实例>里介绍了.NET1.1里C#的基本语法,这些语法再.NET2.0的C#里同样适用。不过  
    在ASP.NET2.0里增加了一个新的关键字partial,partial 关键字的作用是将你的 class 分为多个部分,编译器会将多个部分拼到一起,下面我们就介绍该关键字的作用与使用。
        使得使用该书的您很容易过渡到.NET2.0,或者说让您更明白微软为什么这么做,看完本文您就应该明白是因为需要才促使语言的升级,而不是因为升级促使需要

    请看下面示例代码:

    public partial class SampleClass
    {
        public void MethodA()
        {
        }
    }

    public partial class SampleClass
    {
        public void MethodB()
        {
        }
    }

    这里定义了一个类SampleClass,它包含MethodA和MethodB两个方法,和我们常见的不同,这个类的两个方法是分开定义的,它的作用和下面相当。

    public class SampleClass
    {
        public void MethodA()
        {
        }
        public void MethodB()
        {
        }
    }

    “本文主要引用了刘敏的文章,下面是它从windows窗体设计的角度理解pritial提出的原因,当然天天这里并不赞同,但是为了保持引用的完整性质,下面列出了它的解释
    我猜想这个东西出现的初衷是为了解决掉:“窗体设计器生成的代码”这个令人讨厌的
    region。

    对我们来说,在团队开发当中这个东西或许也会有点用处。

    我观察了一下生成的 IL 代码,使用 partial 生成的代码并没有什么特殊的标记,这
    说明 partial 纯粹是语言的特性,CLR 完全不知道这么个玩意的存在,这也就意味着
    不要指望将 partial class 编译为 assembly 或者 module 什么的再与其他的人写的
    partial class 去进行拼接:它只能在编译的时候起作用。

    为了考验一下编译器,我试着让某一个 partial class 不显式指定父类,发现代码仍
    然能够正确的通过编译,编译器会按照某一个显式指定了父类的 partial 进行编译,
    只有在多个 partial 指定了不同父类时才会报错。同样,如果多个 partial 指定了自
    相矛盾的修饰符的话,编译时也会报错的。

    有意思的是,我们还可以写以下这样的代码:

        public partial class Sample
        {
            public partial class SampleSon
            {
                public partial class SampleGrandson
                {
                }
            }
        }
        public partial class Sample
        {
            public partial class SampleSon
            {
                public partial class SampleGrandson
                {
                }
            }
        }


    --
    以上内容来自刘敏(Rustle Liu)的blogs,网址为
    http://ms.mblogger.cn/rustle/

     




    以下是天天的解释。

    下面我们从ASP.NET开发的角度介绍partial的使用原因
    在ASP.NET1.1版本里,您应该知道,如果我们在WebForm1上放置了一个控件,例如ID为Button1的按钮则
    *.aspx会做如下记录
    <asp:Button  id="Button1" runat="server">

    而*.aspx.cs会做如下记录
    protected Button Button1 ;  //定义了一个Button类对象Button1

       由于这种关系,使得系统的维护变的非常困难,特别是在稍微复杂的应用程序中,改动一点有时需要重新编译整个项目。而且更为难办的是,如果你在程序里按照如下使用
    *.aspx
    protected Button Button1 ;  //定义了一个Button类对象Button1
    而忘记在*.aspx定义Button1,系统还会提示
              “未将对象引用设置为实例”的错误

        为了解决这些问题,.NET2.0才提出了partial 关键字,它使得如下的使用是正确的
    你在*.aspx里定义了一个按钮如
    <asp:Button  id="Button2" runat="server">
    这样您在*.aspx.cs里就可以直接使用Button2,不用再定义类似 Button Button2;这样的对象,系统通过paritial自动将Button2关联起来。所以提高了维护性


     

  • 相关阅读:
    IOS 给一个文本框,按钮,view加虚线边框
    AFNetworking 使用  基础篇
    IOS——中级篇 --TableView以及Cell
    IOS中级篇 —— picKerView and DatePicKer
    IOS中级篇 ——自动布局 Autolayout  and  VFL
    IOS中级篇—— 多线程--NSOperation
    IOS中级篇 —— Autoresizing
    IOS中级篇 —— 字典转模型
    IOS中级篇 —— 关于深复制和浅复制
    IOS中级篇 —— 日期时间对象
  • 原文地址:https://www.cnblogs.com/mqingqing123/p/298203.html
Copyright © 2011-2022 走看看