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的属性还是方法呢?
展开
 我来答
不想起名字了2333
2011-12-02 · TA获得超过2447个赞
知道大有可为答主
回答量:1931
采纳率:50%
帮助的人:1851万
展开全部
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); //着两行代码等效
更多追问追答
追问
integer=value是把外面的值赋给 integer这个变量~~~
这个外面是指哪里的值?
比如说我想把100这个值赋给 integer这个变量,应该怎么写?
再有value的用法能说说吗?
因为我刚学C#,所以有些地方看不太明白,看书有的地方写的又太书面化。所以还请您多指教,谢谢
追答
说我想把100这个值赋给 integer这个变量:
MyObject.Integer = 100; // 这个 100 就是 “外面的值”
百度网友a40e459
2011-12-03 · TA获得超过167个赞
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:121万
展开全部
new 时为赋值默认为0,而后自增所以输出1。2、这句话是对MyClass的Integer属性进行赋值,value是get、set的关键字,是进行属性操作时set的隐含参数。3、因为integer开始的时候为0。
4、属性。如果在int integer 前加个protected或者private理解起来更好,比如银行跟钱的关系。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qq414279842
2011-12-02 · TA获得超过114个赞
知道答主
回答量:48
采纳率:100%
帮助的人:47.5万
展开全部
初始化默认给interger赋值0了,所以一开始输出0,++以后输出1.
public int Integer
{
get {return integer;}
set {integer=value;} }
}
这里是申明Integer属性,可读可写,读写多是对integer操作。一般如果想private类型的值,就可以通过这种方式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdinten
2011-12-02 · TA获得超过6589个赞
知道大有可为答主
回答量:3562
采纳率:56%
帮助的人:1325万
展开全部
这两句:
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 不比这么写要简单的多吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式