国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#中this的用法集錦

2020-01-24 01:48:02
字體:
來源:轉載
供稿:網友

this 關鍵字引用類的當前實例,還可用作擴展方法的第一個參數的修飾符。下面就針對this的四種用法,做簡單的總結。

首先,我們分別創建User和VIP兩個C#類

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace AppConsole{   /// <summary>  /// 普通用戶  /// </summary>  public class User  {    /// <summary>    /// 全局變量    /// </summary>    Dictionary<string, object> dictInfo = null;     /// <summary>    /// 構造器    /// </summary>    public User()    {      dictInfo = new Dictionary<string, object>();    }     /// <summary>    /// 構造函數重載    /// </summary>    /// <param name="UserID"></param>    /// <param name="UserName"></param>    public User(int UserID, string UserName)    {      this.UserName = UserName;      this.ID = UserID;    }     /// <summary>    /// this,第【1】種用法,索引器    /// </summary>    /// <param name="name"></param>    /// <returns></returns>    public object this[string name]    {      get { return dictInfo[name]; }      set { dictInfo[name] = value; }    }      /// <summary>    /// 編號    /// </summary>    public int ID { get; set; }      /// <summary>    /// 用戶名    /// </summary>    public string UserName { get; set; }     /// <summary>    /// this第【2】種用法,當做參數傳遞    /// </summary>    public void Said()    {      new VIP().Say(this);    }   }   /// <summary>  /// 會員  /// </summary>  public class VIP : User  {      /// <summary>    /// 積分    /// </summary>    public int integral { get; set; }     /// <summary>    /// 構造函數    /// </summary>    public VIP()    {      ID = 520;      integral = 1000;    }     /// <summary>    /// this第【3】種用法,通過this()調用無參構造函數    /// </summary>    /// <param name="UserName"></param>    public VIP(string UserName)      : this()    {      this.UserName = UserName;    }     /// <summary>    /// 構造函數重載    /// </summary>    /// <param name="UserID"></param>    /// <param name="UserName"></param>    public VIP(int UserID, string UserName)      : base(UserID, UserName)    {     }     /// <summary>    ///Say方法    /// </summary>    /// <param name="user"></param>    public void Say([LCQAttribute] User user)    {      Console.WriteLine(string.Format("嗨,大家好!我的編號是{0},大家可以叫我{1}!", user.ID, user.UserName));    }   }   /// <summary>  /// 靜態類,來擴展User類  /// </summary>  public static class Helper  {     /// <summary>    /// 第【4】種用法: this擴展User類    /// </summary>    /// <param name="user"></param>    public static void Sing(this User user)    {      Console.WriteLine(string.Format("嗨,大家好!我的編號是{0},大家可以叫我{1}!", user.ID, user.UserName));    }  }   /// <summary>  /// 特性類:指定特性僅適用于方法和方法的參數  /// </summary>  [System.AttributeUsage(AttributeTargets.Method | AttributeTargets.Parameter)]  public class LCQAttribute : System.Attribute  {   }}

this第【1】種用法,索引器

/// <summary>/// 全局變量/// </summary>Dictionary<string, object> dictInfo = null; /// <summary>/// this,第【1】種用法,索引器/// </summary>/// <param name="name"></param>/// <returns></returns>public object this[string name]{  get { return dictInfo[name]; }  set { dictInfo[name] = value; }}

this第【2】種用法,當做參數傳遞

/// <summary>/// this第【2】種用法,當做參數傳遞/// </summary>public void Said(){  new VIP().Say(this);}

this第【3】種用法,通過this()調用無參構造函數

/// <summary>/// this第【3】種用法,通過this()調用無參構造函數/// </summary>/// <param name="UserName"></param>public VIP(string UserName)  : this(){  this.UserName = UserName;}

this第【4】種用法:擴展User類

/// <summary>/// 靜態類,來擴展User類/// </summary>public static class Helper{   /// <summary>  /// 第【4】種用法: this擴展User類  /// </summary>  /// <param name="user"></param>  public static void Sing(this User user)  {    Console.WriteLine(string.Format("嗨,大家好!我的編號是{0},大家可以叫我{1}!", user.ID, user.UserName));  }}

最后,控制臺測試

/// <summary>/// 主程序入口/// </summary>/// <param name="args"></param>static void Main(string[] args){   //0>聲明實體  User user = new User();  user.ID = 1;  user.UserName = "lichaoqiang";   //第【一】種用法:this用作索引器 public object this[string name]{……}  user["UserID"] = 1;  Console.WriteLine("第【一】種用法:this用作索引器");   //第【二】種用法:this用作參數傳遞 user.Say(this);  Console.WriteLine("第【二】種用法:this用作參數傳遞");  user.Said();   //第【三】種用法:this() public VIP:this(){  }  VIP vip = new VIP("yezi");  vip.Said();  Console.WriteLine("第【三】種用法:this()");   //第【四】種用法: this擴展VIP類 public static Sing(this User user){……}  Console.WriteLine("第【四】種用法: this擴展VIP類");  user.Sing();    Console.Read(); }

最終結果示意圖

以上所述上就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 剑阁县| 方山县| 兰溪市| 霍州市| 林口县| 昆山市| 松江区| 安康市| 新化县| 海门市| 长治县| 德兴市| 昭觉县| 江油市| 海南省| 琼海市| 安国市| 外汇| 安丘市| 南靖县| 沽源县| 荥经县| 会昌县| 潞西市| 辽中县| 金溪县| 年辖:市辖区| 舞钢市| 蒲城县| 武威市| 太谷县| 安国市| 会宁县| 宁夏| 元氏县| 赣榆县| 贞丰县| 贞丰县| 什邡市| 子洲县| 曲靖市|