【发布时间】:2011-12-27 14:35:24
【问题描述】:
我并没有真正将类型安全作为一个概念,但许多人认为它对于编写良好的代码很重要,并认为对于一些最重要的因素,例如代码的可扩展性、可重用性、健壮性等。 . 它需要是类型安全的。
像 C# 这样的语言非常重视类型安全,它们是静态类型的,C# 中的泛型比 C++ 模板的类型安全性要高得多。即使ArrayList 被认为不像List<> 那样类型安全,因为它是List<object> 比List<dynamic> 更类型安全,我认为这应该是可能的,但肯定是模糊的。
但是我想知道,再次以 C# 为例,为什么还有 null。我喜欢并赞成null,但它不符合其他语言的类型安全性。
也许在某些方面,'null' 可以提高性能,防止所有需要默认构造的东西,但它也需要额外耗时的运行时检查,以便计算机抛出空异常等。
String s = null;
int n = s.Length; // error like a type error, even if technically it isn't
【问题讨论】:
-
泛型究竟如何比 C++ 模板“更安全”?就此而言,您如何将 X 定义为比 Y“更类型安全”?
-
C# 中没有
NULL这样的东西。你的意思是null? C++ 中的NULL只是定义为((void *)0)。是这个意思吗? -
您可能对托尼爵士的演讲感兴趣:infoq.com/presentations/…
标签: c# types coding-style null type-safety