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面试题及答案二
May 23 面试题
线程的基本概念、线程的基本状态以及状态之间的关系
Oct 26 面试题
C有"按引用传递"吗
Sep 06 面试题
写一个方法1000的阶乘
Nov 21 面试题
经典c++面试题三
Jul 08 面试题
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
Nov 26 面试题
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
Oct 29 面试题
在c#中using和new这两个关键字有什么意义
May 19 面试题
某公司面试题
Mar 05 面试题
如何用Python来进行查询和替换一个文本字符串
Jan 02 面试题
介绍一下Java中的static关键字
May 12 面试题
给定一个时间点,希望得到其他时间点
Nov 07 面试题
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
实用函数3
2007/11/08 PHP
php数据类型判断函数有哪些
2013/09/23 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
微信小程序动态添加分享数据
2017/06/14 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
详解webpack编译速度提升之DllPlugin
2019/02/05 Javascript
微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】
2020/06/01 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
Python面向对象编程中的类和对象学习教程
2015/03/30 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
2018/03/04 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
谈一谈基于python的面向对象编程基础
2019/05/21 Python
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
历史系自荐信范文
2013/12/24 职场文书
学校招生宣传广告词
2014/03/19 职场文书
高中学生自我评价范文
2014/09/23 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
幼儿园中班教师个人工作总结
2015/02/06 职场文书
北京导游词
2015/02/12 职场文书
比赛主持人开场白
2015/05/29 职场文书
保姆聘用合同
2015/09/21 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
苹果发布了MagSafe固件更新,可以不外接电源实现最高7.5W充电
2022/04/21 数码科技
MySQL详细讲解变量variables的用法
2022/06/21 MySQL