惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
H
Heimdal Security Blog
K
Kaspersky official blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Schneier on Security
G
GRAHAM CLULEY
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
C
CERT Recently Published Vulnerability Notes
Google DeepMind News
Google DeepMind News
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
阮一峰的网络日志
阮一峰的网络日志
Simon Willison's Weblog
Simon Willison's Weblog
C
Cisco Blogs
Cyberwarzone
Cyberwarzone
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
Security Archives - TechRepublic
Security Archives - TechRepublic
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 司徒正美
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
V
Visual Studio Blog
博客园 - Franky
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
Jina AI
Jina AI
P
Proofpoint News Feed
P
Proofpoint News Feed
有赞技术团队
有赞技术团队
L
LINUX DO - 最新话题
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 聂微东
T
The Blog of Author Tim Ferriss
Spread Privacy
Spread Privacy
Application and Cybersecurity Blog
Application and Cybersecurity Blog
IT之家
IT之家
S
Security Affairs
博客园 - 叶小钗
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
N
News | PayPal Newsroom
Cloudbric
Cloudbric
AWS News Blog
AWS News Blog
W
WeLiveSecurity
The Last Watchdog
The Last Watchdog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
NISL@THU
NISL@THU

博客园 - 大约在冬季

如何在IronPython中使用C#扩展方法 LINQ入门教程示例使用F#的实现 宝宝照片更新喽 再谈两种不同字符串比较方法的性能对比 - 大约在冬季 - 博客园 如何让DevExpress.TreeList单元格中的自定义控件包含标签 见证中国A股市场:上午大盘加速寻底 沪指跌129点,探低至4241.02 漂亮宝宝100天啦!庆祝一下! F# 学习笔记(1/n) 权重股杀跌沪指半日破两关跌135点 IronPyton分析表达式 WCF服务契约 听课笔记 最近性能优化一些感触,分享中…… 两种不同字符串比较方法的性能对比 .Net 事件类型的实现和推荐做法 设计时支持:如何获取环境数据 如何在C#中调用 IronPython 代码 (基于IronPython 2.0A3) 运行Oracle数据库配置向导创建数据库失败ORA-24324的解决方案 性能——换个角度看问题 设计模式的滋味
C#3.0 自动属性——只能在简单属性上偷懒
大约在冬季 · 2007-05-31 · via 博客园 - 大约在冬季

 C# 3.0 为了提高开发效率和改善编程体验,提供了自动属性的功能,具体的代码则由编译器完成。这样一来声明类中的属性和在接口中声明属性简直就无法区分出来。
 但是,在体验中发现我们只能对string, int这样的简单属性(值类型)充分使用这个新特性,而对于复杂属性(引用类型)则没有那么智能,编译程序的时候是不会有任何警告的。例如下面的代码:

 1 class Program {
 2        static void Main(string[] args) {
 3            OrderSheet order = new OrderSheet();
 4            order.Name= "skfjskfjskfj";
 5
 6            GlobalOrder go = new GlobalOrder();
 7            string  s = go.Doc.BaseURI;
 8            go.Orders.Add(new OrderSheet());
 9            
10        }

11
12        class GlobalOrder {
13            //集合属性不能进行隐示声明,必须在适当的地方进行初始化
14            public OrderCollection Orders getset; }
15
16            //引用类型需要进行初始化,而不能仅仅依赖于编译器
17            public XmlDocument Doc getset; }
18        }

19
20        class OrderSheet {
21           public string Name getset; }
22        }

23
24        class OrderCollection:Collection<OrderSheet> {
25            
26        }

27
28    }


如果覆盖测试进行的不够好的话,使用这种特性创建的属性很容易犯一个经典错误“未将对象引用为对象的实例”。虽然现在C#3.0还没有正式Release,但是我仍然期待着能够将这个特性更加完善,至少在编译的时候给出警告。