Partial Type
ASP.NET 2.0和Avalon都使用了Partial Class. 这样用户的代码和工具生成的代码可以共同组成一个Class.对Partial Type的支持来自编译器. 4个要点如下:
- 我们把partial 叫做modifier而不是关键字.
- 同一类型在不同文件里面都需要使用partial
- 可以只在一个文件,两个文件,或者更多文件中使用partial
- Base class只需要声明一次;若多次声明必需完全一致.
例子:
Contact1.cs
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
{
Contact contact = new Contact("Zhanbo", "Sun");
Console.WriteLine(contact.Name);
AdvancedContact advContact = new AdvancedContact("Zhanbo", "Sun", "
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.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)