C#的get,set 问题
在C#中的属性问题,比如这么一个片段
class Employee
{
private string _name;
private string _id;
public string Id
{
get
{
return _id;
}
set
{
if(_id.length>2)
_id=value;
}
}
}
get 应该就是用于返回值吧,然后set就看不懂了,value从哪来呢? 书上的例子也不怎么看得懂,能否写个简单的属性例子我看看呢?
------解决方案--------------------get set是用来扩展域的,也就是C里的变量,只是用起来更加灵活而己。看以下代码:
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
也就是先把120赋值给value(相当一个存储空间),然后再用get{}返回给Book,实际上也就是一次改变变量值的过程。
那你也许会问为什么要这么复杂呢?因为这是用了嵌套,所以可以更加方便的写入其它语句,在以后你就应该学到了。
------解决方案--------------------其实是类似于C++的类:
class A
{
private int x;
public int get_x()
{
return x;
}
public void set_x(int i)
{
x=i;
}
}
这就是C# 里的get和 set