当前位置:主页   - 电脑 - 程序设计 - C#
Effective C# 原则24:选择申明式编程而不是命令式编程
来源:网络   作者:   更新时间:2012-03-20
收藏此页】    【字号    】    【打印】    【关闭

  与命令式编程相比,申明式编程可以用更简单,更清楚的方法来描述软件的行为。申明式编程就是说用申明来定义程序的行为,而不是写一些指令。在C#里,也和其它大多数语言一样,你的大多数程序都是命令式的:在程序中写一个方法来定义行为。在C#中,你在编程时使用特性就是申明式编程。你添加一个特性到类,属性,数据成员,或者是方法上,然后.Net运行时就会为你添加一些行为。这样申明的目的就是简单易用,而且易于阅读和维护。

  让我们以一个你已经使用过的例子开始。当你写你的第一个ASP.Net Web服务时,向导会生成这样的代码:

[WebMethod]
public string HelloWorld()
{
 return "Hello World";
}

  VS.net的Web服务向导添加了[WebMethod]特性到HelloWorld()方法上,这就定义了HelloWorld是一个web方法。ASP.net运行时会为你生成代码来响应这个特性。运行时生成的Web服务描述语言(WSDL)文档,也就是包含了对SOAP进行描述的文档,调用HelloWorld方法。ASP.net也支持运行时发送SOAP请求HelloWorld方法。另外,ASP.net运行时动态的生成HTML面页,这样可以让你在IE里测试你的新Web服务。而这些全部是前面的WebMethod特性所响应的。这个特性申明了你的意图,而且运行时确保它是被支持的。使用特性省了你不少时间,而且错误也少了。

  这并不是一个神话,ASP.net运行时使用反射来断定类里的哪些方法是web服务,当它们发现这些方法时,ASP.net运行时就添加一些必须的框架代码到这些方法上,从而使任何添加了这些代码的方法成为web方法。

  [WebMethod] 特性只是.Net类库众多特性之一,这些特性可能帮助你更快的创建正确的程序。有一些特性帮助你创建序列化类型(参见原则25)。正如你在原则4里看到的,特性可以控制条件编译。在这种情况以下其它一些情况下,你可以使用申明式编程写出你所要的更快,更少错误的代码。

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明