有点不懂,请高手指教!
using System;
public class cls
{
private int book;
public int Book
{
get
{
Console.WriteLine( "dsf ");
return book;
}
set
{
Console.WriteLine( "aaa ");
book=value;
}
}
public static void Main()
{
cls obj = new cls();
obj.Book = 120;
Console.WriteLine(obj.Book);
}
}
为什么输出的是
aaa
dsf
120
呢? 能详细解答一下吗? 谢谢!
------解决方案--------------------obj.Book = 120
执行了set,也就执行了Console.WriteLine( "aaa "); 同时设置book为120
obj.Book
执行了get,Console.WriteLine( "dsf "); 然后在返回book也就是120
------解决方案--------------------obj.Book = 120;
==> 执行
set
Console.WriteLine(obj.Book);
先执行
get
然后执行 Write
------解决方案--------------------obj.Book = 120;对属性赋值就是使用set里面的方法
Console.WriteLine(obj.Book---这个是取出属性值使用了get里面的方法
这个很好解释啊
------解决方案--------------------cls obj = new cls(); //创建一个cls对象obj
obj.Book = 120; //设置obj的属性book的值为120 这里有两步 (首先执行obj.Book属性(这样楼主应该好理解点C#中的属性实际就是用来给private变量赋值的特殊函数.) 这里就输出了Console.WriteLine( "aaa "); )
Console.WriteLine(obj.Book);
//这里同上 也是两步
------解决方案--------------------obj.Book = 120
执行了set,也就执行了Console.WriteLine( "aaa "); 同时设置book为120
obj.Book
执行了get,Console.WriteLine( "dsf "); 然后在返回book也就是120
加个断点逐步调适一下就明白了!