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...

面试题 相关文章推荐
抽象方法、抽象类怎样声明
Oct 25 面试题
Java工程师面试集锦之Spring框架
Jun 16 面试题
struct与class的区别
Feb 03 面试题
C++:memset ,memcpy和strcpy的根本区别
Apr 27 面试题
SQL语言面试题
Aug 27 面试题
C#如何调用Word并打开一个Word文档
May 08 面试题
Linux如何修改文件和文件夹的权限
Sep 05 面试题
50道外企软件测试面试题
Aug 18 面试题
介绍一下EJB的体系结构
Aug 01 面试题
Java基础知识面试题
Mar 25 面试题
JSF的标签库有哪些
Apr 27 面试题
请介绍一下WSDL的文档结构
Mar 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 cURL和Rolling cURL并发方式比较
2013/10/30 PHP
destoon实现VIP排名一直在前面排序的方法
2014/08/21 PHP
PHP排序算法类实例
2015/06/17 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
php查询内存信息操作示例
2019/05/09 PHP
JQuery从头学起第三讲
2010/07/06 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
js判断游览器类型及版本号的代码
2014/05/11 Javascript
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
js 定位到某个锚点的方法
2016/11/19 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
Bootstrap DateTime Picker日历控件简单应用
2017/03/25 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
Js利用Canvas实现图片压缩功能
2017/09/13 Javascript
Django查询数据库的性能优化示例代码
2017/09/24 Python
django自带的server 让外网主机访问方法
2018/05/14 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
Python输出\u编码将其转换成中文的实例
2018/12/15 Python
python替换字符串中的子串图文步骤
2019/06/19 Python
使用python turtle画高达
2020/01/19 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
德国最大的拼图在线商店:Puzzle.de
2016/12/17 全球购物
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
写演讲稿所需要注意的4个条件
2014/01/09 职场文书
企业法人授权委托书
2014/04/03 职场文书
工作总结与自我评价
2014/09/18 职场文书
2014年惩防体系建设工作总结
2014/12/01 职场文书
2016年大学生暑假爱心支教活动策划书
2015/11/26 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
2021/04/22 HTML / CSS
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫