get访问器不带参数,且必须返回属性生命的类型。set也不应指定任何显示参数,但编译器假定他带一个参数,其类型也与属性相同,并且表示为value。我不明白value到底干嘛的,get,set的实际用法不清楚作者: 谢栋文 时间: 2012-4-12 21:44
如 public int x
{
get {return in;}
set {in=value;}
}
当有语句如:x=36;
value值就为36,通过set将value赋值给in,get的作用即:将in的值返回给属性x。作者: 天高地阔 时间: 2012-4-12 22:14
首先,为什么要使用属性呢,是为了保护拥有这个属性的变量,
如下面这里:
public int age;
public int Age
{
get{return age;}//用户对Age取值时调用get方法
set{value中存储赋的值}//用户对Age赋值时调用set方法
}
如果有一个 Zs.Age=22;
value的作用就是存储用户赋过来的这个22,作者: 谢栋文 时间: 2012-4-12 22:23
哥们 你set{value中存储赋的值} 应该是set{this.age=value;}吧?作者: 徐瑞 时间: 2012-4-12 23:09
set的那个value是内置的一个变量,指的就是外界传入的值作者: ★心秒★ 时间: 2012-4-13 09:07
Visual Studio 2010 - Visual C#
value(C# 参考)
上下文关键字 value 用在普通属性声明的 set 访问器中。 此关键字类似于方法的输入参数。 关键字 value 引用客户端代码尝试赋给属性的值。 在下面的示例中,
MyDerivedClass
有一个名为
Name
的属性,该属性使用 value 参数向支持字段
name
分配新字符串。 从客户端代码的角度来看,该操作写作一个简单的赋值语句。
class MyBaseClass
{
// virtual auto-implemented property. Overrides can only
// provide specialized behavior if they implement get and set accessors.
public virtual string Name { get; set; }
// ordinary virtual property with backing field
private int num;
public virtual int Number
{
get { return num; }
set { num = value; }
}
}
class MyDerivedClass : MyBaseClass
{
private string name;
// Override auto-implemented property with ordinary property
// to provide specialized accessor behavior.
public override string Name
{
get
{
return name;
}
set
{
if (value != String.Empty)
{
name = value;
}
else
{
name = "Unknown";
}
}
}