C#中this指针的用法示例

 更新时间:2014年08月12日 15:29:56   投稿:shichen2014  
这篇文章主要介绍了C#中this指针的用法,对初学者而言是非常重要的概念,必须加以熟练掌握,需要的朋友可以参考下

本文实例展示了C#中this指针的用法,对于初学者进一步牢固掌握C#有很大帮助,具体内容如下:

一、this指针是什么:

这里有一些面向对象编程的概念需要说明:类(Class)的概念和对象(Object)的概念
类是对事物概括,也是C#编码时所有代码归属的基本单位;而对象是对类的实例化,也就是C#里new方法的返回值。写代码是不能直接用操作类,而只能先实例化类,然后我们用这个类被实例化后的对象。
通俗一些的说明是,“类”好比是“人”的概念,而我们把类实例化后,就成为单个人的“对象”,例如:“张三”。
this就是你的代码所归属的“类”的实例化后的“对象”,也叫当前对象。

二、this指针的几种用法:

1、限定被相似的名称隐藏的成员

主要代码如下:

public class ThisName 
{
   public string name = "张三";
   public int num = 55;
   public ThisName() { }
   public void GetThisName(string name, int num)
   {
     name = this.name;//调取全局变量name
     num = this.num;//调取全局变量num
     HttpContext.Current.Response.Write("参数name的值为:"+name+";参数num的值为:"+num);//输出结果为"参数name的值为张三;参数num值为:55"
   }
}

2、将对象作为参数传递到别的方法中

主要代码如下:

public class ThisFF
{
   public ThisFF()
   { 
   }
   public string shuju()
   {
     return "This指针当做方法传递";
   }
 
   public void f1(ThisFF ff)
   {
     HttpContext.Current.Response.Write(ff.shuju());
   }
 
   public void f()
   {
     f1(this);//this在这里可以理解为 ThisFF ff=news ThisFF();当前类的实例
   }
}
 
 ThisFF ff=news ThisFF();//方法实例
 ff.f();//调用方法 输出结果为: This指针当做方法传递

3、声明索引器

主要代码如下:

private int _Sy;
    public int this[int sy]
    {
      get { return _Sy;}
      set { sy=_Sy;}
    }

三、总结:

1.this关键字引用被访问成员所在的当前实例。静态成员函数没有this指针。this关键字可以用来从构造函数,实例方法和实例化访问器中访问成员。
不能在静态方法。静态属性访问器或者域声明的变量初始化程序中使用this关键字,这将会产生错误。

2.在类的构造函数中出现的this作为一个值类型表示对正在构造的对象本身的引用。

3.在类的方法中出现this作为一个值类型表示对调用该方法的对象的引用。

4.在结构的构造函数中出现的this作为一个变量类型表示对正在构造的结构的引用。

5.在结构的方法中出现的this作为一个变量类型表示对调用该方法的结构。

相关文章

  • C# SQLite事务操作方法分析

    C# SQLite事务操作方法分析

    这篇文章主要介绍了C# SQLite事务操作方法,简单分析了使用SQL代码及C#代码实现事务功能的操作技巧,需要的朋友可以参考下
    2017-07-07
  • C#实现XML文档的增删改查功能示例

    C#实现XML文档的增删改查功能示例

    这篇文章主要介绍了C#实现XML文档的增删改查功能,结合实例形式分析了xml文档的创建及C#针对xml文档的加载及增删改查等操作技巧,需要的朋友可以参考下
    2017-01-01
  • C#如何实现用户名与密码登录

    C#如何实现用户名与密码登录

    这篇文章主要介绍了C#如何实现用户名与密码登录问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • C#入参使用引用类型要加ref的原因解析

    C#入参使用引用类型要加ref的原因解析

    这篇文章主要介绍了C#入参使用引用类型要加ref的原因解析,我们在实际开发中还是能够碰到一些引用类型添加ref的场景,其实道理也是一样的,就是将引用类型的栈的地址传递到了方法中,那么和不添加有啥区别,感兴趣的朋友跟随小编一起看看吧
    2022-11-11
  • c#使用热键实现程序窗口隐藏示例

    c#使用热键实现程序窗口隐藏示例

    下面我们将演示如何通过热键隐藏窗口,会用到DllImports of Win32 API、CallBacks/Delegates,定制事件与事件的句柄,大家参考使用吧友
    2014-01-01
  • C#先判断是否存在再创建文件夹或文件与递归计算文件夹大小

    C#先判断是否存在再创建文件夹或文件与递归计算文件夹大小

    这篇文章介绍了C#先判断是否存在再创建文件夹或文件与递归计算文件夹大小的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • C#如何使用Task类解决线程的等待问题

    C#如何使用Task类解决线程的等待问题

    这篇文章主要介绍了C#如何使用Task类解决线程的等待问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • c#中如何获取指定字符前的字符串

    c#中如何获取指定字符前的字符串

    这篇文章主要介绍了c#中如何获取指定字符前的字符串问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • C#中的匿名方法实例解析

    C#中的匿名方法实例解析

    这篇文章主要介绍了C#中的匿名方法,包括其由来、定义及用法等,需要的朋友可以参考下
    2014-09-09
  • WPF的ListView控件自定义布局用法实例

    WPF的ListView控件自定义布局用法实例

    这篇文章主要介绍了WPF的ListView控件自定义布局的方法,结合实例形式分析了WPF中ListView控件的布局方法,需要的朋友可以参考下
    2016-07-07

最新评论