关于 c# 的 Partial Class


Partial Type

ASP.NET 2.0和Avalon都使用了Partial Class. 这样用户的代码和工具生成的代码可以共同组成一个Class.对Partial Type的支持来自编译器. 4个要点如下:

  1. 我们把partial 叫做modifier而不是关键字.
  2. 同一类型在不同文件里面都需要使用partial
  3. 可以只在一个文件,两个文件,或者更多文件中使用partial
  4. Base class只需要声明一次;若多次声明必需完全一致.

例子:
Contact1.cs<?XML:NAMESPACE PREFIX = O />


using System;

namespace Realize.Net.Potential.Sample1

{

  public partial class Contact

  {

    public Contact(string firstName, string lastName)

    {

      this.firstName = firstName;

      this.lastName = lastName;

    }

    int partial = 0;

    private void PartialIsNotAKeyword()

    {

      partial++;

    }

  }

  public partial class AdvancedContact: Contact

  {

    public AdvancedContact(string firstName, string lastName, string address) : base(firstName, lastName)

    {

      this.address = address;

    }

  }

}

Contact2.cs

using System;

namespace Realize.Net.Potential.Sample1

{

  public partial class Contact

  {

    string firstName;

    string lastName;

  }

}

Contact3.cs

using System;

namespace Realize.Net.Potential.Sample1

{

  public partial class Contact

  {

    public virtual string Name

    {

      get { return firstName + " " + lastName; }

    }

  }

  public partial class AdvancedContact

  {

    string address;

    public override string Name

    {

      get

      {

        return base.Name + " at " + address;

      }

    }

  }

}

MainFun.cs

using System;

namespace Realize.Net.Potential.Sample1

{

  public class MainFunc

  {

    [STAThread]

    static int <?XML:NAMESPACE PREFIX = ST1 />Main (string[] args)

    {

      Contact contact = new Contact("Zhanbo", "Sun");

      Console.WriteLine(contact.Name);

      AdvancedContact advContact = new AdvancedContact("Zhanbo", "Sun", "

1 Microsoft Way
");

      Console.WriteLine(advContact.Name);

      return 0;

    }

  }

}

To Compile:

csc /out:MySample1.exe /t:exe *.cs

 

深入了解Generics, iterators, anonymous methods, and partial classes的最佳读本就是更新的C#2.0Specification.

转载于:https://www.cnblogs.com/coldwine/archive/2005/08/12/213148.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值