c#中this的用法 20
usingSystem;namespaceCallConstructor{publicclassCar{intpetalCount=0;Strings="null";Ca...
using System;
namespace CallConstructor
{
public class Car
{
int petalCount = 0;
String s = "null";
Car(int petals)
{
petalCount = petals;
Console.WriteLine("Constructor w/int arg only,petalCount = " + petalCount);
}
Car(String s, int petals)
: this(petals)
{
this.s = s;
Console.WriteLine("String & int args");
}
Car()
: this("hi", 47)
{
Console.WriteLine("default constructor");
}
public static void Main()
{
Car x = new Car();
Console.Read();
}
}
}
能帮我解释一下这段代码中几个this的意思吗? 展开
namespace CallConstructor
{
public class Car
{
int petalCount = 0;
String s = "null";
Car(int petals)
{
petalCount = petals;
Console.WriteLine("Constructor w/int arg only,petalCount = " + petalCount);
}
Car(String s, int petals)
: this(petals)
{
this.s = s;
Console.WriteLine("String & int args");
}
Car()
: this("hi", 47)
{
Console.WriteLine("default constructor");
}
public static void Main()
{
Car x = new Car();
Console.Read();
}
}
}
能帮我解释一下这段代码中几个this的意思吗? 展开
13个回答
展开全部
this是指对当前对象的引用。
举例:
Employee
a
=
new
Employee("x","y");
当初始化对象a的时候,把a对象传入到构造器内,此时this就是a对象。
使用this是为了区分属性name和参数name。
如果属性是someName的话,在构造器里就可以直接写someName=name,而省略this。
举例:
Employee
a
=
new
Employee("x","y");
当初始化对象a的时候,把a对象传入到构造器内,此时this就是a对象。
使用this是为了区分属性name和参数name。
如果属性是someName的话,在构造器里就可以直接写someName=name,而省略this。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
举个例子
class A
{
string name;
public Employee(string name, string alias)
{
this.name = name;
this.alias = alias;
//那么加this就是指上面类里面那个name,不加this就是指方法里参数的name。
}
}
class A
{
string name;
public Employee(string name, string alias)
{
this.name = name;
this.alias = alias;
//那么加this就是指上面类里面那个name,不加this就是指方法里参数的name。
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private
string
name;
private
string
alias;
//
上面两个变量是私有的,只能在本类中访问,其余的类不能访问他们
//而下面的构造方法是外界能访问的,由于除本类之外的类不能访问上面的两个变量name和alias,但是又要给它们传值(如果不传值定义这两个变量就毫无意义),怎么办呢?于是就用下面的构造方法,通过这个构造方法的形参name和alias把值传递进来。这样做的目的就是为了提高程序的安全性,不能让外界直接访问里面的name和alias
//这样在其余的类中就可以写:
Employee
emp
=
new
Employee("姓名",“别名”);
在本类中就是:
this.name=name;//这里的name=”姓名“;
this.alias=alias;//这里的alias=”别名“
这样就达到了外界并没有访问本类的name和alias,但是值也传递进来了,所以达到了提高安全性的目的
public
Employee(string
name,
string
alias)
{
//将构造方法带的值赋给本类中的name,这个this你可以看成是“本类”的意思
this.name
=
name;
this.alias
=
alias;
}
括号里的的参数不一定要取相同的名称这个方法也可以写成
public
Employee(string
a,stirn
b)
{这样写就不用this了,因为这里name和alias是唯一的
name=a;
alias=b;
}
string
name;
private
string
alias;
//
上面两个变量是私有的,只能在本类中访问,其余的类不能访问他们
//而下面的构造方法是外界能访问的,由于除本类之外的类不能访问上面的两个变量name和alias,但是又要给它们传值(如果不传值定义这两个变量就毫无意义),怎么办呢?于是就用下面的构造方法,通过这个构造方法的形参name和alias把值传递进来。这样做的目的就是为了提高程序的安全性,不能让外界直接访问里面的name和alias
//这样在其余的类中就可以写:
Employee
emp
=
new
Employee("姓名",“别名”);
在本类中就是:
this.name=name;//这里的name=”姓名“;
this.alias=alias;//这里的alias=”别名“
这样就达到了外界并没有访问本类的name和alias,但是值也传递进来了,所以达到了提高安全性的目的
public
Employee(string
name,
string
alias)
{
//将构造方法带的值赋给本类中的name,这个this你可以看成是“本类”的意思
this.name
=
name;
this.alias
=
alias;
}
括号里的的参数不一定要取相同的名称这个方法也可以写成
public
Employee(string
a,stirn
b)
{这样写就不用this了,因为这里name和alias是唯一的
name=a;
alias=b;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.构造函数后跟:this(),表示需要执行无参构造函数里代码(省去了无参构造函数代码编写)
2.索引器的写法
public string this[int index]{...}
3.下面表示为这个string类扩展方法。
public static void MyToString(this string str){。。。}
4.方法内“this.属性/成员变量/方法”,表示这个是当前类内成员。
2.索引器的写法
public string this[int index]{...}
3.下面表示为这个string类扩展方法。
public static void MyToString(this string str){。。。}
4.方法内“this.属性/成员变量/方法”,表示这个是当前类内成员。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
this是指对当前对象的引用。
举例:
Employee
a
=
new
Employee("x","y");
当初始化对象a的时候,把a对象传入到构造器内,此时this就是a对象。
使用this是为了区分属性name和参数name。
如果属性是someName的话,在构造器里就可以直接写someName=name,而省略this。
举例:
Employee
a
=
new
Employee("x","y");
当初始化对象a的时候,把a对象传入到构造器内,此时this就是a对象。
使用this是为了区分属性name和参数name。
如果属性是someName的话,在构造器里就可以直接写someName=name,而省略this。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询