Private string _name;
public string Name
{
get {return _name;}
set {_name = value;}
}
和public string Name{get;set;}
有什么不同或者两者有什么不同的用处或优势吗
public string Name
{
get {return _name;}
set {_name = value;}
}
和public string Name{get;set;}
有什么不同或者两者有什么不同的用处或优势吗
VS2010 一下好像不支持这样写。
public <返回类型(与要修改和访问的字段同类型)> <属性名(不要与字段同名)>
{
get
{
return <需要访问修改的字段>;
}
set
{
<需要访问修改的字段>=value;
}
}
当你使用属性来访问该字段时 就会调用里面的get方法,当你要修改该字段时,就会调用set方法,也就时说get方法和set方法不是每个属性必有的(也就是说你定义一个属性的时候可以只写get方法不写set方法,反之也可以。两者都不写也行)。当只有get的时候,只能访问 不能修改;当只有set的时候,只能修改,不能访问;
1
但是
如果,你想在get或者set里面做一些别的操作下面的写法就没法弄了。
比如
private string oldname;
Private string _name;
public string Name
{
get {return _name;}
set { oldname = _name; _name = value;}
}
public string Name{get;set;}
VS2008 以下好像不支持这样写。
“自动属性”的语言特性提供了一个优雅的方式来使得你的编码更加简洁,同时还保持属性的灵活性。自动属性允许你避免手工声明一个私有成员变量以及编写get/set逻辑,取而代之的是,编译器会自动为你生成一个私有变量和默认的get/set操作。