this关键字的含义


Posted in 面试题 onApril 08, 2015
this是一个保留字,仅限于构造函数和方法成员中使用
在类的构造函数中出现表示对正在构造的对象本身的引用,在类的方法中出现表示对调用该方法的对象的引用,在结构的构造上函数中出现表示对正在构造的结构的引用,在结构的方法中出现表示对调用该方法的结果的引用
this保留字不能用于静态成员的实现里,因为这时对象或结构并未实例化
在 C# 系统中,this 实际上是一个常量,所以不能使用 this++ 这样的运算
this保留字一般用于限定同名的隐藏成员、将对象本身做为参数、声明索引访问器、判断传入参数的对象是否为本身
示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace Example10
{
class Class1
{
private double c;
private string value;
public double C
{
get
{
return c;
}
}
public Class1(double c)
{
//限定同名的隐藏成员
this.c = c;
}
public Class1(Class1 value)
{
//用对象本身实例化自己没有意义
if (this != value)
{
c = value.C;
}
}
public override string ToString()
{
//将对象本身做为参数
return string.Format(“{0} Celsius = {1} Fahrenheit”, c, UnitTransClass.C2F(this));
}
//由于好奇,在这做了一个效率测试,想看看到底哪种方式访问成员变量更快,结论:区别不大。。。
public string Test1()
{
long vTickCount = Environment.TickCount;
for (int i = 0; i this.value = i.ToString();
return string.Format(“Have this.: {0} MSEL”, Environment.TickCount – vTickCount);
}
public string Test2()
{
long vTickCount = Environment.TickCount;
for (int i = 0; i value = i.ToString();
return string.Format(“Don’t have this.: {0} MSEL”, Environment.TickCount – vTickCount);
}

}

class UnitTransClass

{

public static double C2F(Class1 value)

{

//摄氏到华氏的转换公式

return 1.8 * value.C + 32;

}

}

class Program

{

static void Main(string[] args)

{

Class1 tmpObj = new Class1(37.5);

Console.WriteLine(tmpObj);

Console.WriteLine(tmpObj.Test1());

Console.WriteLine(tmpObj.Test2());
Console.ReadLine();
}
}
}
结果:
37.5 Celsius = 99.5 Fahrenheit
Have this.: 4375 MSEL
Don’t have this.: 4406 MSEL

Tags in this post...

面试题 相关文章推荐
C语言笔试集
Jul 24 面试题
android面试问题与答案
Dec 27 面试题
以思科路由器为例你写下单臂路由的配置命令
Aug 03 面试题
什么是静态路由?什么是动态路由?各自的特点是什么?
Sep 16 面试题
Linux上比较文件的命令都有哪些
Sep 28 面试题
what is the difference between ext2 and ext3
Nov 03 面试题
数据库测试通常都包括哪些方面
Nov 30 面试题
广州足迹信息技术有限公司Java软件工程师试题
Feb 15 面试题
请写出一段Python代码实现删除一个list里面的重复元素
Dec 29 面试题
华为python面试题
May 03 面试题
int和Integer有什么区别
May 25 面试题
Java面试笔试题大全
Nov 23 面试题
Can a struct inherit from another class? (结构体能继承类吗)
Jul 22 #面试题
.net C#面试题
Aug 28 #面试题
可以使用抽象函数重写基类中的虚函数吗
Jun 02 #面试题
如何选择使用结构还是类
May 30 #面试题
C#面试问题
Jul 29 #面试题
密封类可以有虚函数吗
Aug 11 #面试题
说出你对remoting 和webservice的理解和应用
Jun 08 #面试题
You might like
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
PHP实现补齐关闭的HTML标签
2016/03/22 PHP
详解PHP的Yii框架中自带的前端资源包的使用
2016/03/31 PHP
PHP中关键字interface和implements详解
2017/06/14 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
jQuery bind事件使用详解
2011/05/05 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
2016/09/06 Javascript
canvas的神奇用法
2017/02/03 Javascript
jquery仿京东侧边栏导航效果
2017/03/02 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
2018/12/14 Javascript
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
JS实现炫酷轮播图
2020/11/15 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
[39:07]LGD vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
Python获取Linux系统下的本机IP地址代码分享
2014/11/07 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
python flask实现分页效果
2017/06/27 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
详解Python_shutil模块
2019/03/15 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
用Python绘制漫步图实例讲解
2020/02/26 Python
详解python metaclass(元类)
2020/08/13 Python
美国便宜的横幅和标志印刷在线:Best of Signs
2019/05/29 全球购物
行政总经理岗位职责
2013/12/05 职场文书
如何写好建议书
2014/03/13 职场文书
员工廉洁自律承诺书
2014/05/26 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
党风廉政承诺书2016
2016/03/25 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python