non-nullable相关内容

为什么C#中的DateTime不允许为null?

为什么在C#中不允许将null分配给DateTime?这是如何实施的?可以使用此功能使您自己的类不可为空吗? 示例: string stringTest = null; // Okay DateTime dateTimeTest = null; // Compile error 我知道我可以在C#2.0中使用DateTime?将null分配给dateTimeTest,并且可以使用解 ..
发布时间:2020-07-01 19:54:15 C#/.NET

关于非空类型的辩论

我不断听到人们谈论非空引用类型如何解决这么多错误,并使编程变得如此容易。甚至null的创建者都将其称为十亿美元的错误和规范#引入了不可空类型来解决此问题。 编辑::忽略我对Spec#的评论。我误解了它的工作原理。 编辑2: ,我真的很希望有人与您争论:-) 所以我猜,在少数派中,我错了,但我不明白为什么这场辩论有任何优点。我将null视为错误查找工具。请考虑以下内容: c ..
发布时间:2020-06-01 00:17:57 其他开发

使非可空值类型为可空

我有一个使用受限的简单结构。该结构是在从数据库调用数据的方法中创建的。如果没有从数据库返回的数据,我希望能够返回空值,但是Visual Studio抱怨说,无法将空值转换为PackageName.StructName,因为它是非空值类型。 如何使其可为空? 解决方案 您要查看 Nullable 值类型。 ..
发布时间:2020-05-31 18:40:43 C#/.NET

没有NULL怎么办?

我曾经读过,具有可空类型是绝对的罪恶.我相信这是由创建它们的人所写的文章(在Ada中).我相信无论如何,如果默认情况下,像C#这样的语言使用了非空类型,该怎么办?您将如何替换C#或Ruby或null是可接受值的任何其他公共语言中的一些常见习语? 解决方案 我不会直截了当地宣布可空类型是邪恶的,我会提出:大多数语言将可空性移植到所有类型上,而这两个概念确实应该正交. 例如,所有非原始J ..
发布时间:2020-04-27 03:48:53 其他开发

所有子包的IntelliJ IDEA @ParametersAreNonnullByDefault

我使用IntelliJ的空检查机制来防止nullpointer崩溃。 我已经使用这个答案成功地将所有Java方法参数设置为@NonNull。 创建 package-info.java 后,用于定义包注释。所有作为该软件包的直接后代的java文件在我的Android Studio项目中都有默认@NonNull参数的方法。 明显的问题是我需要为该软件包中的所有Java类定义 @Param ..
发布时间:2018-08-07 16:37:53 Java开发

可变的“标量导航属性”在EF 4.0中:将不可为空的列从单独的数据库表映射到可空的标量实体属性?

使用实体框架版本4.0(或与.NET 4.0兼容的任何其他版本),我想映射此现有的关系数据库模式: 逻辑对象模型: 我已经尝试设置如下:(希望德语字幕不会太迷惑。) 实体框架给我这个错误: 错误3031:问题在映射片段...:表中的非空值列 FooBs.B FooBs 映射到可空的实体属性。 em> 在逻辑模型中, B 应为可空。但是,在数据库中,它不是,因为它驻留在 ..
发布时间:2017-08-20 06:09:08 .NET组件控件

Eclipse null分析:int类型的表达式需要未经检查的转换才能符合“@Nonnull Integer”

当配置Eclipse 4.2.0执行空分析(配置为使用 @ javax.annotation.Nonnull 等)时,以下代码将生成警告 空类型安全性:int类型的表达式需要取消选中 转换才能符合“@Nonnull Integer” class C { static void foo(int i) { bar(i); //警告 } static void bar( ..
发布时间:2017-07-29 21:26:46 Java开发

如何在C#中接近不可为空的引用类型?

我阅读了许多不可为空的问题和答案。看起来像是在C#(4.0)中接近非可空类型的最好方法是Jon Skeet的 NonNullable hack。 但是,似乎C ++ / CLI已经解决了很多问题, : Foo%(而不是原生C ++ Foo& )。编译器通过向参数中添加 modreq(IsImplicitlyDereferenced)来实现这一功能。尝试从C#调用这样的函数导致: ' ..
发布时间:2016-11-06 12:22:42 C#/.NET

替代可空类型在C#

我写的一系列数字数据,其中有时,该系列的值必须是空的工作算法。但是,因为这个应用程序的性能很关键,我都避免使用可空类型。我有PERF测试的算法,专门比较使用可空类型与非可空类型的业绩,并在最好的情况下可空类型的2倍速度较慢,但​​往往差得很远。 最经常使用的数据类型为双,目前为空所选择的替代方案是double.NaN。不过,我明白这不是对NaN值的确切的使用目的,所以我不确定是否有这个我不能 ..
发布时间:2016-09-23 22:18:14 C#/.NET

未分配的非空的变量值(C#)

只是好奇 如果你去: 字符串MyString的; 其值为NULL。 不过,如果你去: INT敏; 这是什么变量在C#中的价值? 感谢 大卫 解决方案 首先,请注意,这个只适用于域,而不是局部变量 - 那些不能被读取,直到他们已经被分配,至少在C#。事实上,CLR初始化栈帧为0,如果你有一个适当的标志集 ..
发布时间:2016-09-19 11:18:16 C#/.NET

C#创建非空类型

如何在C#创建非空值类型如int,布尔等? 解决方案 是的,这些都是名为结构。 结构是值类型,就像 INT ,布尔等 的他们有与之相关的一些规则/建议:(我认为这些是最重要的)的 一个结构传递和价值分配的,当不使用ref或出关键字...这意味着你一个结构里面把一切都将分配或传递给一个方法时被复制。这就是为什么你不应该让大的结构。 您不能定义在C#中的结构 $ B $ ..
发布时间:2016-09-06 13:20:53 C#/.NET

使用EditFor时,取出非可空性默认值[asp.net MVC 3]

我怎样才能删除默认情况下使用EditFor助手时,加入非可空属性的文本框的默认值?我不希望这样的行为 修改 对不起,我没有提供足够的信息。 例如,如果您使用Html.EditorFor与DateTime的是它会自动文本框的值设置为1/1/0001属性。如果使用“日期时间?”(可为空),它不会,它只是离开文本框为空。 解决方案 我不得不做这样的事情对我自己的要求。我用这样的: @m ..
发布时间:2016-07-09 15:56:42 ASP .NET

Getter和@Nonnull

我从Eclipse的一个警告,我知道我可以用燮preSS警告删除,但我想preFER明白是什么使得它的东西它可能为空。 package-info.java @ParametersAreNonnullByDefault 封装测试;进口javax.annotation.ParametersAreNonnullByDefault; test.java 封装测试; 公共类的测试{ 公共 ..
发布时间:2016-05-17 19:46:11 Java开发

可空"标导航属性"在EF 4.0:从一个单独的数据库表中的非可空列映射到一个可空标实体属性?

使用实体框架4.0版本(或任何其他版本与.NET 4.0兼容),我要地图这个现有的关系型数据库模式: 这种逻辑对象模型: 我已经尝试设置如下:(我希望德国的标题不会太让人迷惑) 实体框架给了我这个错误: 错误3031:映射碎片问题...:非空列 FooBs.B 表中的 FooBs 映射到一个可空实体属性。的 在逻辑模型, B 应该是空。然而,在数据库中,它是没有,因为它驻 ..
发布时间:2015-11-28 11:08:03 .NET Framework

我怎样才能得到接近非空的引用类型在C#今天?

我读过许多非空的的问题和答案。它看起来像去接近非可空类型的C#(4.0)的最佳方式是全碟的非空<> 破解 但是,似乎C ++ / CLI已经解决了许多问题,通过支持托管引用:富%(而不是本地C ++ 富和放大器; )。编译器,使这项工作,加入 modreq(IsImplicitlyDereferenced)的说法。试图调用从C#的结果以这样一种功能: “<函数名>”不支持的语 ..
发布时间:2015-11-24 21:23:29 C#/.NET