C# 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 />");

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章