c#中this的用法
2015-12-04 14:48
393 查看
第一个this的意思是调用Car(int petals)方法的属性petals。
第二个this的意思是实例化Car(String s, int petals)方法中的参数s(this.s = s)。
第三个this是调用Car(String s, int petals)方法的两个参数并传参。
在C#中,this关键字代表当前实例,我们可以用this.来调用当前实例的成员方法,变量,属性,字段等;
也可以用this来做为参数状当前实例做为参数传入方法.
还可以通过this[]来声明索引器///////??????具体例子
下面是你这段程序的注解:
using System; // 引入使命空间System
namespace CallConstructor // 声明命名空间CallConstructor
{
publicclass Car // 声明类Car
{
int petalCount =0; //在Car类中声明一个非静态的整型变量petalCount,初始值为0
用Static声明的变量叫做静态变量,非静态成员属类的实例,我们只能在调用类的构
造函数对类进行实例化后才能通过所得的实例加"."来访问声明一个非静态的字符串变量s,
初始值为"null";注意:s
= "null"与s = null是不同的
String s ="null";
Car(int petals) // Car类的默认构造函数
{
petalCount = petals; // Car类的默认构造函数中为
petalCount 赋值为传入的参数petals的值
Console.WriteLine("Constructor
w/int arg only,petalCount = "+ petalCount); // 输出petalCount
}
Car(String s, int petals)// 重载Car类的构造函数
Car(String s, int petals)的第二个参数
: this(petals) // :
this(petals) 表示从当前类中调用petals变量的值来作为构造函数重载方法,这里this调用Car(int petals)
{
this.s = s;
Console.WriteLine("String
& int args");
}
// 在构造函数中为s赋值
// 非静态成员可以在构造函数或非静态方法中使用this.来调用或访问,也可以直接打变量的名字,因此这一句等效于s
= s,
//但是这时你会发类的变量s与传入的参数s同名,这里会造成二定义,所以要加个this.表示等号左边的s是当前类自己的变量
Car() // 重载构造函数,:
: this("hi", 47) // this("hi",
47) 表示调Car(String s, int petals) 这个重载的构造函数,并直接传入变量"hi"和47
{
Console.WriteLine("default
constructor");
}
publicstaticvoid Main()
{
Car x =new Car();
Console.Read();
}
}
}
引自:http://www.cnblogs.com/fangqing1986/archive/2008/05/13/1195302.html
第二个this的意思是实例化Car(String s, int petals)方法中的参数s(this.s = s)。
第三个this是调用Car(String s, int petals)方法的两个参数并传参。
在C#中,this关键字代表当前实例,我们可以用this.来调用当前实例的成员方法,变量,属性,字段等;
也可以用this来做为参数状当前实例做为参数传入方法.
还可以通过this[]来声明索引器///////??????具体例子
下面是你这段程序的注解:
using System; // 引入使命空间System
namespace CallConstructor // 声明命名空间CallConstructor
{
publicclass Car // 声明类Car
{
int petalCount =0; //在Car类中声明一个非静态的整型变量petalCount,初始值为0
用Static声明的变量叫做静态变量,非静态成员属类的实例,我们只能在调用类的构
造函数对类进行实例化后才能通过所得的实例加"."来访问声明一个非静态的字符串变量s,
初始值为"null";注意:s
= "null"与s = null是不同的
String s ="null";
Car(int petals) // Car类的默认构造函数
{
petalCount = petals; // Car类的默认构造函数中为
petalCount 赋值为传入的参数petals的值
Console.WriteLine("Constructor
w/int arg only,petalCount = "+ petalCount); // 输出petalCount
}
Car(String s, int petals)// 重载Car类的构造函数
Car(String s, int petals)的第二个参数
: this(petals) // :
this(petals) 表示从当前类中调用petals变量的值来作为构造函数重载方法,这里this调用Car(int petals)
{
this.s = s;
Console.WriteLine("String
& int args");
}
// 在构造函数中为s赋值
// 非静态成员可以在构造函数或非静态方法中使用this.来调用或访问,也可以直接打变量的名字,因此这一句等效于s
= s,
//但是这时你会发类的变量s与传入的参数s同名,这里会造成二定义,所以要加个this.表示等号左边的s是当前类自己的变量
Car() // 重载构造函数,:
: this("hi", 47) // this("hi",
47) 表示调Car(String s, int petals) 这个重载的构造函数,并直接传入变量"hi"和47
{
Console.WriteLine("default
constructor");
}
publicstaticvoid Main()
{
Car x =new Car();
Console.Read();
}
}
}
引自:http://www.cnblogs.com/fangqing1986/archive/2008/05/13/1195302.html
相关文章推荐
- C# 变量改变事件
- 解决C#跨应用程序域对象生存期问题(remoting中断)
- c#练习题
- C#使用Graphics在窗体上绘图(加滚动条)
- C#字符串数组中含数字时的排序
- C# LeetCode 解决 ExcelConverttNumber to Column
- C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母
- C# 读取压缩文件方式及乱码处理
- C#正则表达式匹配字符串中的数字
- C#导出Excel和CSV文件
- C#图像处理
- C# 代码执行时间
- #Mac#快捷键
- 【C#】 之 构造函数
- C# 实现简单状态机(参考代码)
- C#使用ImitateLogin模拟登录百度
- C#加密方法总汇
- c# 退出
- 基于CC2530的温湿度传感器和基于C#的应用界面设计
- C#中通过位运算实现多个状态的判断