程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中this的用法,你用過幾種?【含源碼示例】

C#中this的用法,你用過幾種?【含源碼示例】

編輯:C#入門知識

C#中的this用法,相信大家應該有用過,但你用過幾種?以下是個人總結的this幾種用法,歡迎大家拍磚,廢話少說,直接列出用法及相關代碼。

 

this用法1:限定被相似的名稱隱藏的成員
  

  /// <summary> 

    /// /******************************************/ 

    /// /*  this用法1:限定被相似的名稱隱藏的成員 */ 

    /// /******************************************/ 

    /// </summary> 

    /// <param name="Name"></param> 

    public Person(string Name, string Sex) 

  { 

        this.Name = Name; 

        this.Sex = Sex; 

  }

 

 

this用法2:將對象作為參數傳遞到其他方法

/// <summary> 

///Person 的摘要說明 

/// </summary> 

public class Person 

    /// <summary> 

    /// 姓名 

    /// </summary> 

    public string Name { set; get; } 

  

    /// <summary> 

    /// /*******************************************/ 

    /// /* this用法2:將對象作為參數傳遞到其他方法 */ 

    /// /*******************************************/ 

    /// </summary> 

    public void ShowName() 

    { 

        Helper.PrintName(this); 

    } 

  

      

  

  

/// <summary> 

/// 輔助類 

/// </summary> 

public static class Helper 

  

    /// <summary> 

    /// 打印人名 

    /// </summary> 

    /// <param name="person"></param> 

    public static void PrintName(Person person) 

    { 

        HttpContext.Current.Response.Write("姓名:" + person.Name + "<br />"); 

    } 

  

}


 


 


this用法3:聲明索引器

/// <summary> 

 /// 其它屬性 

 /// </summary> 

 public NameValueCollection Attr = new NameValueCollection(); 

 

/// <summary> 

 /// /*************************/ 

 /// /* this用法3:聲明索引器 */ 

 /// /*************************/ 

 /// </summary> 

 /// <param name="key"></param> 

 /// <returns></returns> 

 public string this[string key] 

 { 

     set

     { 

         Attr[key] = value; 

     } 

 

     get

     { 

         return Attr[key]; 

     } 

 }

 


 

this用法4:擴展對象的方法
/// <summary> 

///Person 的摘要說明 

/// </summary> 

public class Person 

{   /// <summary>     

    /// 性別     

    /// </summary>     

    public string Sex { set; get; } 

  

  

/// <summary> 

/// 輔助類 

/// </summary> 

public static class Helper 

  

    /// <summary> 

    /// /*****************************/ 

    /// /* this用法4:擴展對象的方法 */ 

    /// /*****************************/ 

    /// </summary> 

    /// <param name="item"></param> 

    /// <returns></returns> 

    public static string GetSex(this Person item) 

    { 

        return item.Sex; 

    } 

}


調用:

Person person = new Person(); 

person.GetSex();

 

 

四種用法完整代碼如下:


show sourceusing System; 

using System.Collections.Generic; 

using System.Web; 

using System.Collections; 

using System.Collections.Specialized; 

  

/// <summary> 

///Person 的摘要說明 

/// </summary> 

public class Person 

    /// <summary> 

    /// 姓名 

    /// </summary> 

    public string Name { set; get; } 

  

    /// <summary> 

    /// 性別 

    /// </summary> 

    public string Sex { set; get; } 

  

    /// <summary> 

    /// 其它屬性 

    /// </summary> 

    public NameValueCollection Attr = new NameValueCollection(); 

  

  

    public Person() 

    { 

    } 

  

    /// <summary> 

    /// /******************************************/ 

    /// /*  this用法1:限定被相似的名稱隱藏的成員 */ 

    /// /******************************************/ 

    /// </summary> 

    /// <param name="Name"></param> 

    public Person(string Name, string Sex) 

    { 

        this.Name = Name; 

        this.Sex = Sex; 

    } 

  

    /// <summary> 

    /// /*******************************************/ 

    /// /* this用法2:將對象作為參數傳遞到其他方法 */ 

    /// /*******************************************/ 

    /// </summary> 

    public void ShowName() 

    { 

        Helper.PrintName(this); 

    } 

  

      

    /// <summary> 

    /// /*************************/ 

    /// /* this用法3:聲明索引器 */ 

    /// /*************************/ 

    /// </summary> 

    /// <param name="key"></param> 

    /// <returns></returns> 

    public string this[string key] 

    { 

        set

        { 

            Attr[key] = value; 

        } 

  

        get

        { 

            return Attr[key]; 

        } 

    } 

  

  

/// <summary> 

/// 輔助類 

/// </summary> 

public static class Helper 

  

    /// <summary> 

    /// /*****************************/ 

    /// /* this用法4:擴展對象的方法 */ 

    /// /*****************************/ 

    /// </summary> 

    /// <param name="item"></param> 

    /// <returns></returns> 

    public static string GetSex(this Person item) 

    { 

        return item.Sex; 

    } 

  

  

    /// <summary> 

    /// 打印人名 

    /// </summary> 

    /// <param name="person"></param> 

    public static void PrintName(Person person) 

    { 

        HttpContext.Current.Response.Write("姓名:" + person.Name + "<br />"); 

    } 

  

}

調用示例:

show source//this用法1示例 

Person person = new Person("小她", "女"); 

 

//this用法2示例 

person.ShowName(); 

 

//this用法3示例 

person["Height"] = "175cm"; 

Response.Write("身高:" + person["Height"] + "<br />"); 

person["Weight"] = "110kg"; 

Response.Write("體重:" + person["Weight"] + "<br />"); 

 

//this用法4示例 

Response.Write("性別:" + person.GetSex() + "<br />");

 

 

由於時間關系,就不說太多,如有不足之處,懇請大家批評指正。

完整示例源碼下載:http://www.BkJia.com/uploadfile/2011/1013/20111013110305836.rar
摘自:零星碎事 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved