C#中this保留字的用法
一、this保留字
this保留字一般只在构造函数、类的方法和类的实例中使用。它有以下含义:
?在类的构造函数中出现的this,则作为一个值类型,表示对正在构造的对象本身的引用。
?在类的方法中出现的this,则作为一个值类型,表示对调用该方法的对象的引用。
?在结构的构造函数中出现的this,则作为一个变量类型,表示对正在构造的结构的引用。
?在结构的方法中出现的this,则作为一个变量类型,表示对调用该方法的结构的引用。
除此之外,在其它地方使用this保留字都是不合法的。
二、提示
假如类中有一个成员变量a,同时在该类的成员函数中又定义了一个局部变量a,此时就必须使用this关键字来指定类的成员变量a了,具体写法就是:
this.a // 指定类的成员变量a,而不是成员函数中的局部变量a请阅读三、示例。
注:在类中,所谓的成员函数,实际上就是类的方法。
this表示当前类。
比如在一个类A中有一个b方法。如果要在类A中调用这个b方法,就可以使用:
this.b如果要在别的类中调用这个方法,就必须先实例化一个对象,然后再调用:
A a = new a();
a.b
在静态的方法中不能使用this,比如main方法就是一个静态的方法,因此,不能在main方法中使用this。
三、示例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class classTest // 自定义类classTest
{
private int age = 20; // 私有成员
public int ShowAge1(int age)// 参数和私有成员重名。
{
return this.age; // 返回的是私有成员age的数值
}
public int ShowAge2(int age)
{
return age; // 返回的是参数的数值
}
// 如果参数和私有成员不重名,在方法中访问成员时不需要添加this,
// 但好的习惯是加上this。
public int ShowAge3(int newage)
{
return age;
}
public int ShowAge4(int newage)
{
return this.age;
}
}
namespace Test
{
class Program
{
static void Main(string[] args)
{
// C#中this保留字的用法-www.baike369.com
classTest classTest1 = new classTest();
Console.WriteLine(classTest1.ShowAge1(100));
Console.WriteLine(classTest1.ShowAge2(100));
Console.WriteLine(classTest1.ShowAge3(100));
Console.WriteLine(classTest1.ShowAge4(100));
Console.ReadLine();
}
}
}
运行结果:
20
100
20
20
C#中this保留字的用法的更多相关文章
- Java中的Socket的用法
Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...
- ecshop中foreach的详细用法归纳
ec模版中foreach的常见用法. foreach 语法: 假如后台:$smarty->assign('test',$test); {foreach from=$test item=list ...
- matlab中patch函数的用法
http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...
- C#中timer类的用法
C#中timer类的用法 关于C#中timer类 在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类 ...
- C#中dynamic的正确用法
C#中dynamic的正确用法 http://www.cnblogs.com/qiuweiguo/archive/2011/08/03/2125982.html dynamic是FrameWork4 ...
- C++中typename关键字的用法
我在我的 薛途的博客 上发表了新的文章,欢迎各位批评指正. C++中typename关键字的用法
- Guava中Predicate的常见用法
Guava中Predicate的常见用法 1. Predicate基本用法 guava提供了许多利用Functions和Predicates来操作Collections的工具,一般在 Iterabl ...
- C++中const 的各种用法
C++中const 关键字的用法 const修饰变量 const 主要用于把一个对象转换成一个常量,例如: ; size = ; // error: assignment of read-only v ...
- JS里设定延时:js中SetInterval与setTimeout用法
js中SetInterval与setTimeout用法 JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似.setTimeout 运用在延迟一段时间,再进行某项操 ...
随机推荐
- python绘制动态图
1.需要注意的问题 解决 MatplotlibDeprecationWarning: Using default event loop until function specific to this ...
- 贪心:钱币找零问题(C++)
贪心是一种算法范例,它一点一点地构建解决方案,总是选择下一个提供最明显和最直接好处的部分.因此,选择局部最优也会导致全局解的问题最适合贪心问题. 例如,考虑分数背包问题.局部最优策略是选择权重比最大的 ...
- JavaScript Date学习实例:获取3分钟前的时间“hhmmss”格式
上一篇博客分享了Date对象的理论知识,今天正好看到一段相关的代码,可以继续深化,通过实例加强复习Date 题目:获取3分钟前的时间,并且显示格式是hhmmss 以下是看到的代码 var time=n ...
- redis4集群
三台服务器:先设置hosts 10.0.0.231 node1 10.0.0.232 node2 10.0.0.233 node3 端口分配: node1: node1: node2: node2: ...
- 搭建Activemq集群
首先搭建zookeeper集群: 参考URL: http://www.cnblogs.com/feiyun126/p/7244394.html 三台服务器:先设置hosts 10.0.0.231 n ...
- 用javascript实现禁止页面后退返回上一页的代码
用javascript实现禁止页面后退返回上一页的代码: 有时候我们需要用户在点击了如下一步的按钮时,页面跳转到了下一个页面,这时想不允许用户返回后退到上一页,可以采用下面的方法: 在需要跳转的页 ...
- 常见的25个顶级PHP模板引擎
为了找到一个好的模板引擎,我在互联网上进行搜索,目前已经整理出了以下名单: SmartySmarty的特点是将模板编译成PHP脚本,然后执行这些脚本.很快,非常灵活. Heyes Template C ...
- PHP 7 的几个新特性
1. ?? 运算符(NULL 合并运算符) 把这个放在第一个说是因为我觉得它很有用.用法: $a = $_GET['a'] ?? 1; 它相当于: <?php $a = isset($_GET[ ...
- JEECMS站群管理系统-- Jeecms项目导入myeclipse
1.在myeclipse中新建一个项目jeecms,将服务器中jeecms项目下web-inf文件夹下内容拷到新建项目中 解压缩jeecms-3.0.2-final-src,在src文件夹下会看到有三 ...
- python复习目录
目录 一.计算机基础 二.python 2.1初始python 2.1 python基础1 2.2 python基础2 三.函数 3.1 函数进阶 3.2 函数之装饰器 3.3 递归函数之二分查找 3 ...