c#中的this如何使用

 我来答
武风002
2015-09-13 · TA获得超过858个赞
知道小有建树答主
回答量:1016
采纳率:100%
帮助的人:303万
展开全部
第一个this的意思是调用Car(int petals)方法的属性petals。
2 第二个this的意思是实例化Car(String s, int petals)方法中的参数s(this.s = s)。
3 第三个this是调用Car(String s, int petals)方法的两个参数并传参。
4
5 在C#中,this关键字代表当前实例,我们可以用this.来调用当前实例的成员方法,变量,属性,字段等;
6 也可以用this来做为参数状当前实例做为参数传入方法.
7 还可以通过this[]来声明索引器

在C#中,this关键字代表当前实例,我们可以用this.来调用当前实例的成员方法,变量,属性,字段等; 也可以用this来做为参数状当前实例做为参数传入方法. 还可以通过this[]来声明索引器 下面是你这段程序的注解: // 引入使命空间System using System;

// 声明命名空间CallConstructor namespace CallConstructor {
// 声明类Car public class Car {
// 未用Static声明的变量叫做非静态成员
//类的实例,我们只能在调用类的构造函数对类进行实例化后才能通过所得的实例加"."来访问 int petalCount = 0; // 在Car类中声明一个非静态的整型变量petalCount,初始值为0
String s = "null"; // 声明一个非静态的字符串变量s,初始值为"null";注意:s = "null"与s = null是不同的
// Car类的默认构造函数 Car(int petals) {
petalCount = petals; // Car类的默认构造函数中为 petalCount 赋值为传入的参数petals的值 Console.WriteLine("Constructor w/int arg only,petalCount = " + petalCount); // 输出petalCount }
// 重载Car类的构造函数
// : this(petals) 表示从当前类中调用petals变量的值来作为构造函数重载方法Car(String s, int petals)的第二个参数 Car(String s, int petals) : this(petals) {
/*在构造函数中为s赋值。非静态成员可以在构造函数或非静态方法中使用this.来调用或访问,也可以直接打变量的名字,因此这一句等效于s = s,但是这时你会发类的变量s与传入的参数s同名,这里会造成二定义,所以要加个this.表示等号左边的s是当前类自己的变量*/ this.s = s;
Console.WriteLine("String & int args"); }
// 重载构造函数,: this("hi", 47) 表示调Car(String s, int petals) 这个重载的构造函数,并直接传入变量"hi"和47
Car() : this("hi", 47)
{ Console.WriteLine("default constructor"); } public static void Main(){ Car x = new Car(); Console.Read();
} } }
xiangjuan314
推荐于2016-06-24 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2839万
展开全部

this是C#中的关键字,仅限于在构造函数、实例方法和类的实例中使用,它有以下定义:

1、在类的构造函数中出现的this作为一个值类型,表示对正在构造的对象本身的引用:

2、在实例方法中出现的this作为一个值类型,它表示对调用该方法的对象的引用

3、在结构的实例构造函数中出现的this作为一个变量类型,它表示对正在构造的方法的结构的引用。

4、在结构的实例方法中出现的this作为一个变量类型,它表示对调用该方法的结构的引用

    class Point
    {
        public double x, y;
        public Point(double x, double y)
        {
            this.x = x;//this在实例方法体内引用当前对象
            this.y = y;
        }
    }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蘿蔔冷麵
2011-11-23 · TA获得超过371个赞
知道小有建树答主
回答量:432
采纳率:0%
帮助的人:258万
展开全部
它表示一个对象,哪个对象调用方法,获取属性,或者赋值等,他就是代表那个调用的对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappjjPbaucxju2RE
2011-11-23 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:181
采纳率:0%
帮助的人:88.3万
展开全部
this表示的是当前所在类型的指针,指的是针对当前类型成员的操作,指向当前类型的实例,如果相对继承的类型操作使用base关键字,this可以用在这里,比如:
class A{
string s = null;
public A(string s){
//在这里写s=s肯定不行,得用this.是表示类成员中的s,
this.s = s;
///类型B的构造函数中得有一个参数,需要类型A的实例,可以直接用过this把自己传递给B的构造函数。
B b = new B(this);
}
}

class B{
A a = null;
public B(A a){
this.a = a;
}
}
从类型A可以看出,A的构造函数参数s和成员s重名,但是可以通过this.s来指定当前类的成员的s而不是构造函数参数的s。B实例时候需要A类型的实例,但是new B的时候就是在A类型里面,可以直接this传递过去,此时this就等同于类型A的实例变量。
this表示当前类型成员,或者当前实例。
base表示集成的父级类型成员
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无私且坦然的风光4053
2011-11-23
知道答主
回答量:28
采纳率:0%
帮助的人:7.2万
展开全部
this作用很多,最多的是this。类
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式