C#中this指针的用法示例
这篇文章主要介绍了C#中this指针的用法,对初学者而言是非常重要的概念,必须加以熟练掌握,需要的朋友可以参考下。
本文实例展示了C#中this指针的用法,对于初学者进一步牢固掌握C#有很大帮助,具体内容如下:
一、this指针是什么:
这里有一些面向对象编程的概念需要说明:类(Class)的概念和对象(Object)的概念
类是对事物概括,也是C#编码时所有代码归属的基本单位;而对象是对类的实例化,也就是C#里new方法的返回值。写代码是不能直接用操作类,而只能先实例化类,然后我们用这个类被实例化后的对象。
通俗一些的说明是,“类”好比是“人”的概念,而我们把类实例化后,就成为单个人的“对象”,例如:“张三”。
this就是你的代码所归属的“类”的实例化后的“对象”,也叫当前对象。
二、this指针的几种用法:
1、限定被相似的名称隐藏的成员
主要代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
|
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、将对象作为参数传递到别的方法中
主要代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
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、声明索引器
主要代码如下:
|
1
2
3
4
5
6
|
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指针的用法示例的更多相关文章
- c++中this指针的用法
1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果.this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将 ...
- C++中this指针的用法详解
转自 http://blog.chinaunix.net/uid-21411227-id-1826942.html 1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响s ...
- C++中this指针的用法详解(转)
原文地址:http://blog.chinaunix.net/uid-21411227-id-1826942.html 1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影 ...
- 【转】C++中this指针的用法详解
1.this指针的用处 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果.this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象 ...
- [转载] C++中this指针的用法详解
摘自:http://blog.chinaunix.net/uid-21411227-id-1826942.html 1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响s ...
- shell中字典的一个用法示例
1. shell中字典的用法示例, 数组用法同字典 2. 以上使用sell配合字典实现的功能, 使用awk能轻松搞定, 如下: awk '{print $2}' file.txt | sort | u ...
- js中setTimeout/setInterval定时器用法示例
js中setTimeout(定时执行一次)和setInterval(间隔循环执行)用法介绍. setTimeout:在指定的毫秒数后调用指定的代码段或函数:setTimeout示例代码 functio ...
- Objective-C中NSArray的基本用法示例
NSArray的一些用法 NSArray只允许装OC对象,并且不能装空值,空代表数组元素的结束 #pragma mark - NSArray的基本用法 // 创建一个空数组 NSArray *arra ...
- LINQ中的连接(join)用法示例
Linq中连接主要有组连接.内连接.左外连接.交叉连接四种.各个用法如下. 1. 组连接 组连接是与分组查询是一样的.即根据分组得到结果. 如下例,根据publisther分组得到结果. 使用组连接的 ...
随机推荐
- js中的连等==和全等===
===是没有强制类型转换的,和其他大部分语言的==是一样的.而js中==是有类型转换的. 比如说"true"==true就是错的,Boolean("false" ...
- G.易彰彪的一张表
易彰彪最近有点奇怪,一向爱打游戏他最近居然盯着一张全是大小写字母的表在看,好像在找什么东西.他说,这是他女神给他的一张表,他需要回答女神的问题——在忽略大小写(即大写字母和小写字母视为同一字母)的情况 ...
- mmwave
毫米波(mmWave) 致力于支持5G应用创新开发,集成在BEEcube BEE7基带平台上的赛灵思256QAM毫米波调制解调器IP为宽带回程原型设计提供完整的开箱即用型解决方案 赛灵思公司 (NAS ...
- caioj1465&&poj1024: 【AC自动机】地图匹配
刷的第二题AC自动机,这题简直了.. 用询问的串建AC自动机,然后...爆搜! ACBB ACBBACCA A AABBC ...
- MYSQL进阶学习笔记十:MySQL慢查询!(视频序号:进阶_23-24)
知识点十一:MySQL 慢查询的应用(23) 一.慢查询定义 MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为慢查询. 查看时间限制 show variables lik ...
- codeforces 673B B. Problems for Round(模拟)
题目链接: B. Problems for Round time limit per test 2 seconds memory limit per test 256 megabytes input ...
- [SoapUI] Common XPath expressions
选取节点 表达式 描述 nodename 选取此节点的所有子节点. / 从根节点选取. // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置. . 选取当前节点. .. 选取当前节点的父节点 ...
- table中tr或者td的点击事件
直接把时间添加到table或者tbody上,只有下面的tr或者td才能促发事件,通过e.target可以获得当前点击tr或者td,这样就可以进行查询或者删除操作了 如果是删除,直接e.target.r ...
- JAVA interrupte中断线程的真正用途
Java线程之中,一个线程的生命周期分为:初始.就绪.运行.阻塞以及结束.当然,其中也可以有四种状态,初始.就绪.运行以及结束. 一般而言,可能有三种原因引起阻塞:等待阻塞.同步阻塞以及其他阻塞(睡眠 ...
- bzoj1038&&500AC!
序列dp 先开始想了一个类似区间dp的东西...少了一维 然后发现似乎不太对,因为女生的最大差和男生的最大差并不相等 dp[i][j][x][y]表示当前有i个人,j个男生,男生和女生的后缀最大差是x ...