相关疑难解决方法(0)

为什么C#和Java中存在"null"?

我们注意到在C#(或Java)中开发的软件中存在很多错误会导致NullReferenceException.

有没有理由为什么"null"甚至被包括在语言中?

毕竟,如果没有"空",我就没有错,对吧?

换句话说,如果没有null,语言中的哪些功能无法工作?

c# java null

73
推荐指数
9
解决办法
5691
查看次数

在Haskell中使用Maybe类型

我正在尝试在Haskell中使用Maybe类型.我查找了返回Maybe的键值元组.如何访问由Maybe包装的数据?例如,我想将Maybe包含的整数与另一个整数相加.

haskell maybe

34
推荐指数
5
解决办法
3万
查看次数

为什么Null对那些喜欢类型安全的人来说并不是类型安全的呢?

我并不是真正将类型安全作为一个概念,但许多人认为这对于编写良好的代码很重要,并认为对于一些最重要的因素,例如代码可以很好地扩展,可重用,强大等等......它需要是安全的.

像C#这样的语言非常重视类型安全,它们是静态类型的,C#中的泛型比C++模板更安全.即使ArrayList它被认为不是类型安全的,List<>因为它是一个List<object>类型安全比例如a更安全List<dynamic>,我认为这应该是可能的,但肯定是模糊的.

但是我想知道,再次使用C#作为一个例子,为什么还有null.我喜欢并赞同,null但它不符合其他语言的类型安全性.

也许在某些方面'null'提高了性能,防止了所有需要在默认情况下构造的内容,但它还需要额外耗时的运行时检查,以便计算机抛出空异常等等.

String s = null;
int n = s.Length; // error like a type error, even if technically it isn't
Run Code Online (Sandbox Code Playgroud)

c# null types coding-style type-safety

3
推荐指数
1
解决办法
459
查看次数

标签 统计

c# ×2

null ×2

coding-style ×1

haskell ×1

java ×1

maybe ×1

type-safety ×1

types ×1