c# 中有关get、set、value的问题
classProgram{staticvoidMain(string[]args){Console.WriteLine("1\t2\n3");MyClassMyObjec...
class Program
{
static void Main(string[] args)
{
Console.WriteLine("1\t2\n3");
MyClass MyObject = new MyClass();
Console.Write(MyObject.Integer);
MyObject.Integer++;
Console.Write(MyObject.Integer);
}
}
class MyClass
{
int integer;
public int Integer
{
get {return integer;}
set {integer=value;} }
}
上面的代码为什么会输出01呢?integer=value;是什么意思?为什么Integer 的值会是0呢?Integer是MyClass的属性还是方法呢? 展开
{
static void Main(string[] args)
{
Console.WriteLine("1\t2\n3");
MyClass MyObject = new MyClass();
Console.Write(MyObject.Integer);
MyObject.Integer++;
Console.Write(MyObject.Integer);
}
}
class MyClass
{
int integer;
public int Integer
{
get {return integer;}
set {integer=value;} }
}
上面的代码为什么会输出01呢?integer=value;是什么意思?为什么Integer 的值会是0呢?Integer是MyClass的属性还是方法呢? 展开
4个回答
展开全部
Integer是MyClass的属性~~~ 有get、set关键字的,都是属性~~~
class MyClass
{
int integer;
public int Integer
{
get {return integer;}
set {integer=value;}
public int IntegerDemo( int nun)
{
this.integer = nun;
}
}
IntegerDemo才是myClass的方法
integer=value是把外面的值赋给 integer这个变量~~~
get 、set 是 关键字~~
MyClass MyObject = new MyClass(); //默认实例化一个MyObject 对象,系统为它分配内存
Console.Write(MyObject.Integer); //因为 Integer是int型属性,但是没赋初始值,所以输出0
MyObject.Integer++; //自加1
Console.Write(MyObject.Integer); //输出“自加1“这个操作的结果
int num = MyObject.Integer++;
Console.Write(num); //着两行代码等效
class MyClass
{
int integer;
public int Integer
{
get {return integer;}
set {integer=value;}
public int IntegerDemo( int nun)
{
this.integer = nun;
}
}
IntegerDemo才是myClass的方法
integer=value是把外面的值赋给 integer这个变量~~~
get 、set 是 关键字~~
MyClass MyObject = new MyClass(); //默认实例化一个MyObject 对象,系统为它分配内存
Console.Write(MyObject.Integer); //因为 Integer是int型属性,但是没赋初始值,所以输出0
MyObject.Integer++; //自加1
Console.Write(MyObject.Integer); //输出“自加1“这个操作的结果
int num = MyObject.Integer++;
Console.Write(num); //着两行代码等效
更多追问追答
追问
integer=value是把外面的值赋给 integer这个变量~~~
这个外面是指哪里的值?
比如说我想把100这个值赋给 integer这个变量,应该怎么写?
再有value的用法能说说吗?
因为我刚学C#,所以有些地方看不太明白,看书有的地方写的又太书面化。所以还请您多指教,谢谢
追答
说我想把100这个值赋给 integer这个变量:
MyObject.Integer = 100; // 这个 100 就是 “外面的值”
展开全部
new 时为赋值默认为0,而后自增所以输出1。2、这句话是对MyClass的Integer属性进行赋值,value是get、set的关键字,是进行属性操作时set的隐含参数。3、因为integer开始的时候为0。
4、属性。如果在int integer 前加个protected或者private理解起来更好,比如银行跟钱的关系。
4、属性。如果在int integer 前加个protected或者private理解起来更好,比如银行跟钱的关系。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
初始化默认给interger赋值0了,所以一开始输出0,++以后输出1.
public int Integer
{
get {return integer;}
set {integer=value;} }
}
这里是申明Integer属性,可读可写,读写多是对integer操作。一般如果想private类型的值,就可以通过这种方式。
public int Integer
{
get {return integer;}
set {integer=value;} }
}
这里是申明Integer属性,可读可写,读写多是对integer操作。一般如果想private类型的值,就可以通过这种方式。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这两句:
MyClass MyObject = new MyClass();
Console.Write(MyObject.Integer);
初始化一个对象,然后Integer成员由于是值类型,所以默认值为0,输出为0,如果是引用类型的话就是null。
接下来,MyObject.Integer++;相当于是让Integer增加1,所以结果就是1了
Integer是属性,方法都是要带括号的,get和set都是属性控制关键字,get控制读,set控制写,一个属性可以只包含其中一个,对于set中的value其实指代的就是给该属性传递的值。
另外,一楼的:
int num = MyObject.Integer++;
Console.Write(num); //着两行代码等效
这个时候num是Integer的原始值好不好?Integer先将值传递出去,然后再自增1的,不要误导别人 ,三楼讲的比较深入,如果你查看IL语句的话确实是如他所言。
对于C#3.0,有个简单的实现属性的方法:
public int Integer{get;set;}
这个时候Integer将会自动变为private成员,但是却暴露出Integer这一属性。
MyClass MyObject = new MyClass();
Console.Write(MyObject.Integer);
初始化一个对象,然后Integer成员由于是值类型,所以默认值为0,输出为0,如果是引用类型的话就是null。
接下来,MyObject.Integer++;相当于是让Integer增加1,所以结果就是1了
Integer是属性,方法都是要带括号的,get和set都是属性控制关键字,get控制读,set控制写,一个属性可以只包含其中一个,对于set中的value其实指代的就是给该属性传递的值。
另外,一楼的:
int num = MyObject.Integer++;
Console.Write(num); //着两行代码等效
这个时候num是Integer的原始值好不好?Integer先将值传递出去,然后再自增1的,不要误导别人 ,三楼讲的比较深入,如果你查看IL语句的话确实是如他所言。
对于C#3.0,有个简单的实现属性的方法:
public int Integer{get;set;}
这个时候Integer将会自动变为private成员,但是却暴露出Integer这一属性。
追问
value的用法能说说吗?
再有这么定义变量的意义是什么?
class MyClass
{
int integer;
public int Integer
{
get {return integer;}
set {integer=value;} }
}
直接int Integer = 0 不比这么写要简单的多吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |