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

推荐订阅源

博客园 - 叶小钗
爱范儿
爱范儿
WordPress大学
WordPress大学
Last Week in AI
Last Week in AI
博客园 - 聂微东
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 司徒正美
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Cloudflare Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
宝玉的分享
宝玉的分享
罗磊的独立博客
Jina AI
Jina AI

博客园 - kyovcs

通用连接数据库的C#类 用FLASHMX连结ASPX的方式 防止SQL注入漏洞 使用TRUNK连接多台交换机VLAN(Vlan + Trunk) VLAN间路由实验 配置RIPv2(Enabling Rip v2) Cisco IOS 基本命令集 CCNA课堂精简笔记 .NET委托:一个C#睡前故事 C#学习笔记 最少步骤:N变1 取胜之道 点灯游戏算法 关于被整除问题 八方块移动游戏 Visual C# 诠释常用排序算法 A*寻路初探 线索二叉树(C# 2.0) 二叉树遍历算法实现(C#2.0)
感受 C# 3.0 的优雅
kyovcs · 2007-12-19 · via 博客园 - kyovcs

问:真的有必要用 C# 3.0 吗?
答:可以不用,但我们不能忽视它的好处。

-------- 以下是我给的一个例子 --------------------------

只有开始编码,你才能体会 C# 3.0 的优雅。

对比下面分别用 C# 2.0 和 3.0 写的同一个类型效果,你感觉到了什么?代码变得更加简洁,没有了属性和其关联字段间的重复劳动,也可以少写几个 "无聊" 的构造方法。或许很多人对语法简化持保留意见(包括我本人),但不可否认 3.0 的语法更利于维护,当我们臃肿的的工程代码从 50000 行缩减到 20000 行时,那么它所带来的就不仅仅是少敲键盘这么点好处了。

C# 2.0

class User
{
  
private string name;
  
private int age;
  
private List<string> interest;

  
public User()
  
{
    interest 
= new List<string>();
    interest.Add(
"读书");
    interest.Add(
"上网");
  }


  
public User(string name, int age) : this()
  
{
    
this.name = name;
    
this.age = age;
  }


  
public string Name 
  
{
    
get return name; }
    
set { name = value; }
  }

  
public int Age 
  
{
    
get return age; }
    
set { age = value; }
  }


  
public List<string> Interest 
  
{
    
get return interest; }
  }

}


// Invoke
User user = new User("tom"21);

C# 3.0

class User
{
  
public User()
  
{
    Interest 
= new List<string> "读书""上网" };
  }

  
  
public string Name getset; }
  
public int Age getset; }
  
public List<string> Interest getprivate set; }
}


// Invoke
var user = new User
{
  Name 
= "tom",
  Age 
= 21,
}
;

我的工程中还出现了 CharExtension、StringExtension,甚至是 ObjectExtension 这样的 Mixin,至于 Lambda、Anonymous types、Linq 自不必多说。