c#4.0 f#

刚刚看了一些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++一样了,

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值