C# this指针用法
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# this指针用法的更多相关文章
- Leetcode刷题之矩阵中的指针用法
矩阵中的指针用法 1 快慢指针 Leetcode27移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度.不要使用额外的数组 ...
- c++ 智能指针用法详解
本文介绍c++里面的四个智能指针: auto_ptr, shared_ptr, weak_ptr, unique_ptr 其中后三个是c++11支持,并且第一个已经被c++11弃用. 为什么要使用智能 ...
- C和C指针小记(九)-指针用法1
1. *p++ 最常用的一个指针的用法,就是在循环中用来迭代. *p++ 共有3步操作: 1.++操作符把p所指向的内存中的值复制一份 2.++操作符把p加1(实际是一个p所指内存单元的大小,这也是编 ...
- typedef函数指针用法
typedef void(*vp)(); 将vp声明为一个函数指针类型,该类型的指可以针指向一个没有参数,带空返回值的函数. 调用方法vp p;创建一个vp类型的函数指针p void print(vp ...
- c语言指针用法
一.指针 int t 定义整型变量 int *p p为指向整型数据的指针变量 int a[n] 定义整型数组a,它有n个元素 int *p[n] 定义指针数组p,它由n个指向整形数据的指针元素组成 i ...
- go里面的指针用法
什么是指针 指针是存储一个变量的内存地址的变量. 在上图中,变量 b 的值是 156,存储在地址为 0x1040a124 的内存中.变量 a 存储了变量 b 的地址.现在可以说 a 指向 b. 指针的 ...
- C++中const指针用法汇总
这里以int类型为例,进行说明,在C++中const是类型修饰符: int a; 定义一个普通的int类型变量a,可对此变量的值进行修改. const int a = 3;与 int const a ...
- C语言的指针用法:输入一堆字符,把非字母的删去。
char *p,a[20]; int i; gets(a); //这个语句不同于getchar(),后者只能一次输入一个,而前者可以一次输完所有的字符!!! p=a; //这个语句 ...
- C语言之指针用法总结
C语言指针概述:1.计算机系统中,无论是存入或是取出数据都需要与内存单元打交道,物理器件通过地址编码寻找内存单元.2.地址编码是一种数据,C语言的指针类型正是为了表示这种计算机所特有的地址数据.3.存 ...
随机推荐
- spring工作机制
Hibernate.struts,还差一个spring 就一起发出去.. spring工作机制及为什么要用? 1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用 ...
- 页面 Backspace 功能禁锢
var flag=false; window.document.onkeydown = function keyDown() { if(event.keyCode==8){ event.returnV ...
- 剑指Offer38 数组所有数字出现两次,只有两个出现了一次,找出这两个数字
/************************************************************************* > File Name: 38_Number ...
- Storm累计求和中使用各种分组Grouping
Shuffle Grouping: 随机分组, 随机派发stream里面的tuple, 保证bolt中的每个任务接收到的tuple数目相同.(它能实现较好的负载均衡) Fields Grouping: ...
- IT技术方案最佳实践方案的收集
一.图片鉴别服务 1. 阿里云,腾讯云等公开的服务. 2. 图谱科技提供的API 二. 网络直播服务器 1. SRS2 开源服务器 (https://github.com/ossrs/srs/wiki ...
- 数理方程:Laplace变换 & 留数(更新中)
更新:25 APR 2016 Laplace变换 设函数\(f(t)\)在\(t>0\)时有定义,积分 \(F(s)=\int_0^{+\infty}f(t)e^{-st}dt \qquad ( ...
- Sharepoint 2013 系列篇(安装部署)--上篇
前言 sharepoint的部署是按照物理拓扑图的架构来部署,按照物理拓扑图架构分为一层拓扑图架构,二层拓扑图架构,三层拓扑图架构,多层拓扑图架构. 按照分层的拓扑图部署是按照需求来划分的,一层拓扑图 ...
- 十三、Android学习笔记_Andorid控件样式汇总
<!-- 设置activity为透明 --> <style name="translucent"> <item name="android: ...
- Part 8 Coalesce function in sql server
- 简单的MySQL数据库主从同步配置
Master配置: 代码如下 复制代码 log-bin = mysql-binserver-id = 1binlog-do-db = powerdns #要同步的数据库 Master新增slave账号 ...