邢台草帽 的讨论

发布于: 雪球回复:0喜欢:0
c#里面没有类的多继承,所有类都是从object类单继承下来的。
不过c#里面的类可以多继承接口,执行接口附加的特性。这也更符合面相对象方法解决问题的思维方式。

怎么说呢,类似c#和java一类的语言,其实是属于工程类语言。

从工程的角度来说,明确性,其实是一个优点,可以有效降低复杂度。

毕竟干工程的,不是搞研究的,讲究的是多快好省。

所以c#语言里面,增加了很多看似比较啰嗦的语法,但是却增加了明确性。

c++很多语法都非常简洁灵活,但是对于工程来说,这反而是缺点。因为工程人员之间理解难度增加,更容易出问题。
~~~~
c++的模板,在c#里面就是泛型。

只不过在c#里面增加了更多的约束。

比如两个泛型参数相加,这在c#里面是不允许的。
因为泛型类提供给其它人调用之前,你不知道参数到底是什么类。
从明确性的角度来说,相加是无意义的。

但是在c++里面就非常灵活,也没多少约束,顶多调用时抛出异常。

如果从工程角度,调用方是很难理解为什么会出这种问题。

c#就是强约束,必须是哪类类型,甚至是符合某些条件的类型,才可以进行调用。在工程上是非常方便的。
~~~~
我没有涉及到过图灵机相关的问题,这方面确实回答不出来。[赞成][捂脸]