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++面试题目
Jun 25 面试题
威盛公司软件C++工程师笔试题面试题
Jul 16 面试题
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
Jul 23 面试题
linux面试题参考答案(2)
Dec 06 面试题
网上常见的一份Linux面试题(多项选择部分)
Sep 09 面试题
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
Sep 07 面试题
Linux机考试题
Oct 16 面试题
MIS软件工程师的面试题
Apr 22 面试题
中间件的定义
Aug 09 面试题
META-INF文件夹中的MANIFEST.MF的作用
Jun 21 面试题
请说出以下代码输出什么
Aug 30 面试题
JSF界面控制层技术
Jun 17 面试题
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
PHP chop()函数讲解
2019/02/11 PHP
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
javascript时间函数基础介绍
2013/03/28 Javascript
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
js文本框输入点回车触发确定兼容IE、FF等
2013/11/19 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
2019/01/09 jQuery
vue-cli3 从搭建到优化的详细步骤
2019/01/20 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Linux下多个Python版本安装教程
2018/08/15 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
Python多线程处理实例详解【单进程/多进程】
2019/01/30 Python
python实现图片九宫格分割
2021/03/07 Python
pymysql 开启调试模式的实现
2019/09/24 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
2020/10/15 Python
快速创建python 虚拟环境
2020/11/28 Python
10分钟理解CSS3 Grid布局
2018/12/20 HTML / CSS
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
中职生自我鉴定范文
2013/10/03 职场文书
化工专业应届生求职信
2013/11/08 职场文书
通信工程专业毕业生推荐信
2013/12/25 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
大型公益活动策划方案
2014/08/20 职场文书
2014预备党员批评与自我批评思想汇报
2014/09/20 职场文书
食堂卫生管理制度
2015/08/04 职场文书
社区服务活动感想
2015/08/11 职场文书
2016学校先进党组织事迹材料
2016/02/29 职场文书
文书工作总结(范文)
2019/07/11 职场文书