刚刚看了一些F#,C#4.0动态类型方面的文章,有些感触。
先说 F#
函数式编程,静态语言,这种语言的抽象度很高,不易掌握,理解。不适合初学者。另外,好像没有看到这种语言的优势,除了在“并行运算”方面。对于它是否能够推广开,我有些疑虑。
再说 C#4.0动态类型
先看这段代码
- class Program
- {
- public static object GetBusinesLogicInstance(
- BusinessLogicObjectType businessLogicObjectType)
- {
- switch (businessLogicObjectType)
- {
- case BusinessLogicObjectType.ProductBL: return new ProductBL();
- case BusinessLogicObjectType.CustomerBL: return new CustomerBL();
- default: return null;
- }
- }
- static void Main(string[] args)
- {
- dynamic dynamicBLObject = GetBusinesLogicInstance(
- BusinessLogicObjectType.ProductBL);
- dynamicBLObject.ProcessNewProductData();
- Console.Read();
- }
- }
注意红色部分,函数 GetBusinesLogicInstance 返回对象为 object 类型 ,如果调用代码这么写
- object dynamicBLObject = GetBusinesLogicInstance(
- BusinessLogicObjectType.ProductBL);
- dynamicBLObject.ProcessNewProductData();
编译一定通不过,现象把 object 改成 dynamic 编译就能通过,这样一来,就等于不再要求类型安全,就和c++一样了,
真的怀疑它的好处,另外也易出错。