【请教】Model的两种写法 ,在于区分.net 3.x?

demoooo 2010-06-24 09:50:28

说是在net3.0中可以这样写


public string test { get; set; }


而在3.0以前要:


private string _test;
public string test
{
get { return _test; }
set { _test = value; }
}


但是第一种写法,在.net 2.0中也可以用啊? 请教除了写法上节俭很多代码, 还有其他什么区别吗?
...全文
99 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
皮皮虾向前冲 2010-06-25
  • 打赏
  • 举报
回复
没什么区别。。。都是封装。。编译器升级了。。
demoooo 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 microtry 的回复:]
我觉得,如果单纯这样写
public int A{ get; set; }
跟public int A;
没有区别
[/Quote]

public int A;
这样写就没有 get,set方法了啊
缪军 2010-06-24
  • 打赏
  • 举报
回复
我觉得,如果单纯这样写
public int A{ get; set; }
跟public int A;
没有区别
缪军 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyq11 的回复:]

[/Quote]


public int A{ get; set; }是用来替代public int A;的

不是用来替代
private int _a;
public int A
{
get { return _a; }
set { _a= value; }
}


demoooo 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 delphiyuan 的回复:]
呃,楼主需要了解一下IL了,.net语言编译以后都会变成IL。
首先回答你的问题,两种写法没有区别。是等效的。3.0以后的版本这样写不过是为了看起来比较简洁。
然后分析下本质:
在.net中,属性的get和set编译后最终其实等效于两个函数。get_字段 和 set_字段。
第二种写法,编译器会自动的生成一个私有字段。
[/Quote]

呃,谢谢提醒,刚用reflector看了下il 在2.0下无论用哪种写法,编译的都一样.
那就也不存在自动属性不能用在2.0了啊

-深白色- 2010-06-24
  • 打赏
  • 举报
回复
呃,楼主需要了解一下IL了,.net语言编译以后都会变成IL。
首先回答你的问题,两种写法没有区别。是等效的。3.0以后的版本这样写不过是为了看起来比较简洁。
然后分析下本质:
在.net中,属性的get和set编译后最终其实等效于两个函数。get_字段 和 set_字段。
第二种写法,编译器会自动的生成一个私有字段。
huming_h 2010-06-24
  • 打赏
  • 举报
回复
这个可能跟编译器有关,vs08的编译器处理了
demoooo 2010-06-24
  • 打赏
  • 举报
回复
但是有一点,我项目框架选择的是2.0,代码中也用"自动属性"这种写法了,居然也是能用的呀...很不解哦
huming_h 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 demoooo 的回复:]

引用 1 楼 huming_h 的回复:
自动属性2.0应该是没有的。


2.0中会出错? 我安装了vs2008,带了3.x,还没机会试验.
[/Quote]
是的。
demoooo 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 huming_h 的回复:]
自动属性2.0应该是没有的。
[/Quote]

2.0中会出错? 我安装了vs2008,带了3.x,还没机会试验.
wuyq11 2010-06-24
  • 打赏
  • 举报
回复
自动属性
在C# 2.0中:
private int _a;
public int A
{
get { return _a; }
set { _a= value; }
}
在C# 3.0及以上,完全可以写成:
public int A{ get; set; }
zhu_jiang 2010-06-24
  • 打赏
  • 举报
回复
越来越智能了,好!!!
huming_h 2010-06-24
  • 打赏
  • 举报
回复
自动属性2.0应该是没有的。

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧