Welcome

首页 / 软件开发 / .NET编程技术 / .NET,你忘记了么?(八)—— 从dynamic到特性误用

.NET,你忘记了么?(八)—— 从dynamic到特性误用2011-04-12 博客园 飞林沙1. 摘要

每个程序员都想写出漂亮的代码,但是什么是漂亮,这个我想每个人都有着自己的看法。 那么我就说几种典型的想法:

A. 写出别人看不懂的代码,让别人觉得很高深。

B. 写出简短的代码

C. 用最新的语言特性写出代码

这个我不发表评论,毕竟每个人有着自己的观点,我也不能证明自己的就是对的。但是在 这里,我想说一些典型的误用。

2. 从dynamic谈起

作为C#4.0的更新之一,dynamic已经越来越被推到了很多技术论坛的第一线。我看了很多 关于dynamic的讲解,但是我还是我一贯的观点。既然我们用的微软的东西,那么我们在使用 一个语言特性的同时,我们首先要弄清微软为什么要推出这门语言,不要盲目去使用。这样 往往会适得其反。

那下面我就看大多数教程中的一个传统代码:

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
dynamic p = new People("Test");
Console.WriteLine(p.GetName());
}
}
class People
{
private string name;
public string GetName()
{
return name;
}
public People(string name)
{
this.name = name;
}
}
}

但是正如很多评论中的质疑的一样,这样的操作究竟有什么作用?(我并不是怀疑很多作 者不懂这个,而是说这个会误导很多人)于是很多人就会不明不白地去跟风,去乱用dynamic 。

那么我们就在这里说清,究竟为何dynamic。