扩展方法的定义及使用
生活随笔
收集整理的這篇文章主要介紹了
扩展方法的定义及使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
擴展方法是定義在靜態類內部的靜態方法,開發人員可以像用實例方法那樣來使用擴展方法。根據C#的語法規定,實例方法只能通過建立一個實例對象才能調用,不能通過類名來調用,相反的,靜態方法只能通過類名來調用。而擴展方法提供了一個新的機制可以在對象實例上調用靜態方法。擴展方法主要用于在不改變現有的類型代碼下,擴展現有類型的功能。所擴展的功能只限于當前上下文有效,并不會對原有類型的定義的代碼產生變化。
注意:擴展方法類和要擴展的類須具有相同的命名空間。
它的一般聲明格式如下:
public static class 類名
{
public static 返回類型 擴展方法名 (this?要擴展的類型 參數名)
{
函數體;
}
}
通過示例說明:
?
?
class?Program????{
????????static?void?Main(string[]?args)
????????{
????????????Complex?com?=?new?Complex(10,?-10);
????????????var?real?=?com.ToDouble();//調用擴展方法
????????????Console.WriteLine("復數"+com.ToValue()+"轉換為double類型:"+real);
????????????Console.Read();
????????}
????}
????public?static?class?Extensions
????{
????????///?<summary>?
????????///?///?把復數類型轉換為double類型(Complex的擴展方法)?
????????///?///?</summary>?
????????///?///?<param?name="com">復數</param>?
????????///?///?<returns>雙精度值</returns>?
????????public?static?double?ToDouble(this?Complex?com)
????????{
????????????return?com.Real;
????????}
????????//把復數轉換為字符串類型(Complex的擴展方法)
????????///?</summary>
????????///?///?<param?name="com">復數</param>
????????///?///?<returns>字符串值</returns>
????????public?static?string?ToValue(this?Complex?com)
????????{
????????????string?str?=?com.Real.ToString();
????????????if?(com.Imag?>?0)
????????????????str?+=?"+";
????????????if?(com.Imag?!=?0)
????????????????str?+=?com.Imag?+?"i";
????????????return?str;
????????}
????}
????public?class?Complex?
????{?
????????//實數?
????????protected?double?real;?
????????public?double?Real?{?get?{?return?real;?}?}?
????????//虛數?
????????private?double?imag;
????????public?double?Imag?{?get?{?return?imag;?}?}
????????public?Complex(double?real,?double?imag)
????????{
????????????this.real?=?real;
????????????this.imag?=?imag;
????????}
????}
?
轉載于:https://www.cnblogs.com/zhuawang/archive/2011/10/07/2200926.html
總結
以上是生活随笔為你收集整理的扩展方法的定义及使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 凯越USB无法播放
- 下一篇: 两块 硬盘 主从盘跳线详解