1 public class TableInfo
2 {
3 // Fields
4 private string _tabDate;
5 private string _tabName;
6 private string _tabType;
7 private string _tabUser;
8
9 // Properties
10 public string TabDate { get; set; }
11 public string TabName { get; set; }
12 public string TabType { get; set; }
13 public string TabUser { get; set; }
14 }
1 public class TableInfo
2 {
3 // Properties
4 public string TabDate { get; set; }
5 public string TabName { get; set; }
6 public string TabType { get; set; }
7 public string TabUser { get; set; }
8 }
类的字段是通过属性来访问的;通过属性可以控制该字段的读写情况,更加安全;其次,自动属性这个是C#的语言特性,跟语法是没关系的,就相当于内部帮你做好了,但是界面上面没有显示罢了;如:
class person1
{
private string _name;
private int _age;
public String Name
{
get { return _name; }
set { _name = value; }
}
public int Age
{
get { return _age; }
set { _age = value; }
}
}
跟
class person2
{
public String Name { get; set; }
public int Age { get; set; }
}
这两个类,后面是自动属性的,在编译为il的时候 再看两个类的信息:
不好意思,这里不会用这个编辑器插入图片,见谅啊,用il dasm 工具查看
person1的字段_age是常规的 .field private int32 _age
这个时候person2也生产了一个对应的字段哦(根据属性) .field private int32 '<Age>k__BackingField' C#编译器为这个类自动生成的一个字段,应该可以说明问题了吧 呵呵
嗯,我写了两个类测试了一下,il 反汇编程序,又学到一个新东西。il Dasm 好东西啊!
1 public class Class1
2 {
3 private string _Name;
4
5 public string Name
6 {
7 get { return _Name; }
8 set { _Name = value; }
9 }
10 }
11
12 public class Class2
13 {
14 public string Name { get; set; }
15 }
插入图片我刚找到,在写博客那个地方,有一个相册,先把图片上传到相册,然后再引用相册的地址就行了,我测试的结果和你的一样。
这两种写法是一样的,第一种下面这几个没有用到,是多余的
// Fields
4 private string _tabDate;
5 private string _tabName;
6 private string _tabType;
7 private string _tabUser;
忘了说一下了,第一种真正的赋值对象是带下划线的,第二种赋值对象就是他们本身,只实现简单的读写功能的自动属性,和直接通过自动属性操作字段,有什么区别,我知道,这两种方法实现的功能是一样的,只是发起者不一样,我想知道他们有什么区别