c#4.0 f#

来源:互联网 发布:linux删除挂载硬盘 编辑:程序博客网 时间:2024/06/04 21:58

刚刚看了一些F#,C#4.0动态类型方面的文章,有些感触。

 

先说 F#

 

函数式编程,静态语言,这种语言的抽象度很高,不易掌握,理解。不适合初学者。另外,好像没有看到这种语言的优势,除了在“并行运算”方面。对于它是否能够推广开,我有些疑虑。

 

再说 C#4.0动态类型 

 

先看这段代码

 

  1.  class Program  
  2.    {  
  3.       public static object GetBusinesLogicInstance(  
  4.          BusinessLogicObjectType businessLogicObjectType)  
  5.       {  
  6.          switch (businessLogicObjectType)  
  7.          {  
  8.             case BusinessLogicObjectType.ProductBL: return new ProductBL();  
  9.             case BusinessLogicObjectType.CustomerBL: return new CustomerBL();  
  10.             defaultreturn null;  
  11.          }  
  12.       }  
  13.  
  14.       static void Main(string[] args)  
  15.       {  
  16.          dynamic dynamicBLObject = GetBusinesLogicInstance(  
  17.             BusinessLogicObjectType.ProductBL);  
  18.          dynamicBLObject.ProcessNewProductData();  
  19.          Console.Read();  
  20.       }  
  21.    }  

 注意红色部分,函数 GetBusinesLogicInstance 返回对象为 object 类型 ,如果调用代码这么写

  1. object  dynamicBLObject = GetBusinesLogicInstance(  
  2.             BusinessLogicObjectType.ProductBL);  
  3.          dynamicBLObject.ProcessNewProductData();  

编译一定通不过,现象把 object  改成 dynamic 编译就能通过,这样一来,就等于不再要求类型安全,就和c++一样了,

真的怀疑它的好处,另外也易出错。

原创粉丝点击