在学习C#的时候,老师讲的示例中有一些地方用到了this关键字,猛哥在视频中也略微解释了一下,并未深讲,所以直到学完,我在这一块依旧有着疑问:this这个关键字到底怎么用呢?

所以今天下午由找了些资料看了看,不知道自己的理解是否正确,望各位网友指导一下。

先从微软官方的C#编程指南中摘抄一段:

以下是 this 的常用用途:

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

  • 将对象作为参数传递到其他方法

  • 声明索引器

---------------------------------------------------------

对于第一个用途限定被相似的名称隐藏的成员我也刚刚有了一点头绪,我的语言组织能力较差,我们通过一个示例来看看:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace @this
{
class Program
{
static void Main(string[] args)
{
Student stu = new Student();
stu.GetMessage("Mark", 1);
Console.WriteLine("My name is {0}.My ID number is {1}.",stu.Name,stu.ID);
}
} class Student
{
public string Name { get; set; }
public int ID { get; set; } public void GetMessage(string Name,int ID)
{
this.Name = Name;
this.ID = ID;
}
}
}

  

  this.Name = Name; //这里的Name就是传进来的Name

this.ID = ID;//这里的ID就是传进来的ID

这里的this就是指在这个Student类里面创建的一个实例(或者说用this替代了在这个类里创建的一个实例)

更正:

都怪我学术不精,自己对这一块理解错了,多亏了网友@ 雨夜潇湘在评论区评论指出我的问题所在

红色的是我又学习后总结的,应该无错了

-----------------------------------------------------------------------------------------

例子中的this实际上是代替了stu,在方法体内完成了赋值等操作

如果有个stu2

那么此时的this又代替了stu2在方法体内完成了赋值等操作

引用 雨夜潇湘的总结:

我们所说的this代表当前对象是指运行时谁调用了其成员谁就是this。

或者来句死的:谁点出成员的,谁就是this。this代表的是当前这个类型运行时的一个实例

-----------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------

To be Continued!

------------------------------------------------------------------------------------------

希望广大网友指出问题所在,指出我哪里理解错了,共同交流,共同进步!

最新文章

  1. iOS NSOperation 异步加载图片 封装NSOperation 代理更新
  2. TCP三次握手,数据传输,四次挥手
  3. java web 代码
  4. cocos2dx ease 公式
  5. javaWeb实现使用邮箱邮件找回密码功能
  6. 用excel做一幅像素画
  7. base64转码
  8. JAVA基础2——类初始化相关执行顺序
  9. 《android开发进阶从小工到专家》读书笔记--HTTP网络请求
  10. R语言︱H2o深度学习的一些R语言实践——H2o包
  11. ThreadPoolExecutor系列一——ThreadPoolExecutor 机制
  12. 微信小程序性能优化技巧
  13. Unity读Excel 输出PC端(Windows)后不能读取的问题
  14. (3网络化部署)自己动手,编写神经网络程序,解决Mnist问题,并网络化部署
  15. Git版本控制工具安装与配置
  16. JAVA中的>>和>>>号以及<<号的作用
  17. xshell 中解决中文乱码问题
  18. Linux 文件与目录管理,Linux系统用户组的管理
  19. zabbix监控进程
  20. struts2学习笔记(1)配置与基本操作

热门文章

  1. Git分布式版本控制教程
  2. Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目
  3. Java 教程整理:基础、项目全都有
  4. css实现文本框和下拉框结合的案例
  5. 关于sql server 2005存储过程的写法
  6. MyBatis3.2从入门到精通第一章
  7. 杂项之python描述符协议
  8. Linux配置防火墙 开启80端口的方法
  9. CentOS 7 上部署Mono 4 和Jexus 5.6
  10. Html5下拉控件同时支持文本输入和下拉代码