C#中分部類(lèi)和分部方法的應(yīng)用
分部類(lèi)(Partial Class)在C#2.0引入,分部方法(Partial Method)在C#3.0引入,這兩個(gè)語(yǔ)法特性都具有相同的特性:將類(lèi)(或)方法的代碼分散在多個(gè)地方。
1.分部類(lèi)的特性和應(yīng)用
1.1分部類(lèi)的定義
在定義一個(gè)類(lèi)時(shí),加上partial關(guān)鍵字,此類(lèi)即成為分部類(lèi)。
分部類(lèi)允許將一個(gè)類(lèi)的代碼分散于一個(gè)以上的源代碼文件中。
Person.cs代碼如下
namespace PartialClassDemo1
{
public partial class Person
{
private int age;
Person(int age, string name)
{
this.age = age;
this.name = name;
}
public int Age
{
get
{
return age;
}
set
{
if (age < 0 || age > 120)
Console.WriteLine("年齡非法");
else
this.age = Age;
}
}
static void Main(string[] args)
{
Person p = new Person(19,"張三");
Console.WriteLine(p.Age);
Console.ReadKey();
}
}
}
Person2.cs代碼如下
namespace PartialClassDemo1
{
public partial class Person
{
private string name;
}
}
使用分部類(lèi)時(shí),需要注意一下原則:
(1)所有的需要“合并”的類(lèi)必須都用partial關(guān)鍵字聲明。
(2)所有的需要“合并”的類(lèi)必須位于同一個(gè)項(xiàng)目中。
2.為什么要引入分部類(lèi)
分部類(lèi)主要用于隔離來(lái)源不同,功能不同或者類(lèi)型不同的源代碼
另外分布特性還可以用具結(jié)構(gòu)和接口
3.分布方法的特性和應(yīng)用
分布方法允許將方法聲明與方法實(shí)現(xiàn)代碼分布于不同的文件中。與分部類(lèi)類(lèi)似,使用partial關(guān)鍵字定義分部方法。
partial void show(string str);
partial void show(string str)
{
Console.WriteLine(str+"再見(jiàn)");
}
分布方法不能具有訪問(wèn)修飾符或virtual、abstract、override new sealed 或者extern修飾符
partial修飾符只能出現(xiàn)在緊靠class struct interface void前面的位置
當(dāng)分部方法沒(méi)有實(shí)現(xiàn)代碼時(shí),C#編譯器會(huì)在編譯時(shí)刪除其調(diào)用語(yǔ)句。
現(xiàn)在我們知道了分部方法有這種特性,但是它有什么用呢?
使用分部方法允許我們?cè)谝粋€(gè)普通方法中插入一個(gè)方法占位符,從而為編寫(xiě)可隨時(shí)添加功能的方法提供支持。
分部方法不能有多個(gè)實(shí)現(xiàn)。
相關(guān)文章
.NET單點(diǎn)登陸的實(shí)現(xiàn)方法及思路
這篇文章介紹了.NET單點(diǎn)登陸的實(shí)現(xiàn)方法及思路,有需要的朋友可以參考一下,希望對(duì)你有所幫助2013-07-07C#使用WebSocket實(shí)現(xiàn)聊天室功能
這篇文章主要為大家詳細(xì)介紹了C#使用WebSocket實(shí)現(xiàn)聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02C#預(yù)定義數(shù)據(jù)類(lèi)型之值類(lèi)型和引用類(lèi)型介紹
這篇文章主要介紹了C#預(yù)定義數(shù)據(jù)類(lèi)型之值類(lèi)型和引用類(lèi)型介紹,本文著重講解了引用類(lèi)型中的object(對(duì)象)類(lèi)型和string(字符串)類(lèi)型,需要的朋友可以參考下2015-03-03C#使用foreach循環(huán)遍歷數(shù)組完整實(shí)例
這篇文章主要介紹了C#使用foreach循環(huán)遍歷數(shù)組,結(jié)合完整實(shí)例形式較為詳細(xì)的分析了C#遍歷數(shù)組的相關(guān)技巧,需要的朋友可以參考下2016-06-06Unity UGUI通過(guò)搖桿控制角色移動(dòng)
這篇文章主要為大家詳細(xì)介紹了Unity3D基于陀螺儀實(shí)現(xiàn)VR相機(jī)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11