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

面试题 相关文章推荐
几道PHP面试题
Apr 14 面试题
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
Sep 11 面试题
北京华建集团SQL面试题
Jun 03 面试题
什么是表空间(tablespace)和系统表空间(System tablespace)
Feb 25 面试题
武汉英思工程科技有限公司–ORACLE面试测试题目
Apr 30 面试题
介绍一下SQL中union,intersect和minus
Apr 05 面试题
UDP协议功能
Jan 06 面试题
软件测试企业面试试卷
Jul 13 面试题
几道Web/Ajax的面试题
Nov 05 面试题
如何用Python输出一个Fibonacci数列
Aug 28 面试题
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
Nov 09 面试题
DTD的含义以及作用
Jan 26 面试题
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 中的一些经验积累
2006/10/09 PHP
PHP开发中常用的字符串操作函数
2011/02/08 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
js parsefloat parseint 转换函数
2010/01/21 Javascript
jQuery选中select控件 无法设置selected的解决方法
2010/09/01 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
jQuery 遍历函数详解
2015/07/05 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
python实现批量下载新浪博客的方法
2015/06/15 Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
2017/07/30 Python
Python基于回溯法子集树模板解决m着色问题示例
2017/09/07 Python
Python OpenCV处理图像之图像直方图和反向投影
2018/07/10 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
分享一个pycharm专业版安装的永久使用方法
2019/09/24 Python
python重要函数eval多种用法解析
2020/01/14 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
2013的个人自我评价
2013/12/26 职场文书
大学生职业生涯规划书范文
2014/01/04 职场文书
无故旷工检讨书
2014/01/26 职场文书
学生会招新策划书
2014/02/14 职场文书
职务说明书范文
2014/05/07 职场文书
车间质检员岗位职责
2015/04/08 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书
详解Spring事件发布与监听机制
2021/06/30 Java/Android
Python类方法总结讲解
2021/07/26 Python