C#中this的用法,你用过几种?【含源码示例】

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();

 

四种用法完整代码如下:

调用示例:


 

由于时间关系,就不说太多,如有不足之处,恳请大家批评指正。

完整示例源码下载https://files.cnblogs.com/foolin/UseThis.rar

 

 

 

 

posted @   刘付灵(Foolin)  阅读(5739)  评论(22编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库

邮箱:Foolin@126.Com QQ:970026999

点击右上角即可分享
微信分享提示