问题标签 [non-nullable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 我可以强制将表达式与不可为空的参数一起使用吗?
我不知道如何解释这一点,所以我将首先向您展示一些代码并解释它的作用。
Extension Filter
: 接收我为我的应用程序 ( IFilter
) 构建的参数表达式和特殊类型的过滤器。
目前,可以这样做(简化!):
所以,那边有问题。BarID
可以为空,因此 EF 正在使用 生成 POCO 类int?
,这对我来说很好,但不适用于我的表达式处理。这个问题首先起源于这个问题:How to create a Nullable<T> from a Type variable?.
问题描述:
例外二元运算符 Equal 没有为类型“System.Nullable`1[System.Int32]”和“System.Int32”定义。从此代码中抛出:
其中 leftExpr 是 a System.Nullable1[[System.Int32
(参数,as int?
),rightExpr 是 a System.Int32
(值,as Int32`)。
问题:
我可以做些什么来避免? 从int?
? 我的意思是,是否可以避免接收可为空的类型,或者我应该在我的代码中检查这一点?
非常感谢,
里卡多
c# - 类型推断在可空和不可空 int 上调用“加入”失败
在我的 Linq 中,我正在尝试对可空字段进行内部连接。Employee 和 Department 有关系,Department 可能有一个 EmployeeID 或者可能有一个 null。那么,如果我只想要满足内部联接的记录(空 EmployeeID 没有结果),我的联接将是什么:
我遇到了一个例外:
join 子句中的表达式之一的类型不正确。类型推断在调用“加入”时失败。
谢谢
c# - C#中包装器的自动转换
我已经构建了旨在防止引用类型为空的包装类,作为前置条件代码合同。
这很好用,但总是需要像处理 Nullable 时一样:
是否可以让 NonNullable 类型的参数表现得好像它是 T 类型,而不必强制转换它?就像在 Spec# 中一样:
.net - 不可为空的引用类型(再次)
关于 .NET 中对不可为空的引用类型的支持存在许多问题。最大的希望是代码合约,但它仅限于预算有限的人的运行时检查。
至于代码合同以外的方法,Jon Skeet几年前写了一篇关于此的博客文章,其中一位评论者提供了一个看起来很有用的NonNull 结构,它修改了 IL 以禁用默认构造函数。这似乎是一种极好的方法,我可以想象将其扩展为提供各种不可为空的微类型。IL 操作可以是由结构上的属性触发的构建后步骤,例如
在我进一步调查之前,我想问一下是否有人知道这可能导致的任何问题?我一个都想不出来。
c# - 将可为空的十进制(十进制?)转换为字符串时,无法在字符串转换中显式指定区域性
我有一个财产:
Resharper 向我展示了:
明确指定字符串转换中的文化
但如果我使用:
我总是收到这样的信息:
ToString 方法有 0 个参数,但它是用 1 个参数调用的
如果我更改小数属性使其不再可为空,那么它可以工作。如何ToString(CultureInfo.CurrentCulture)
在可为空的属性上使用?
c# - 通用返回类型和不可为空的对象
我有一个 Sql Utility 类,其中包含很多关于 Sql 查询的方便方法。该类包含以下方法:
是否可以返回例如Guid
对象或其他不可为空的类。
像这样的东西:
java - Getter 和 @Nonnull
我从 Eclipse 收到警告,我知道我可以通过抑制警告将其删除,但我更愿意了解是什么让它可能为空。
包信息.java
测试.java
我不明白为什么我会收到此警告...
PS:
public Test( @Nonnull final String s ) {
-> nullness 注释是多余的,具有适用于该位置的默认值
@Nonnull private final String s;
-> 没有任何变化
c# - 抽象类和不可为空的值类型
我正在尝试
为类生产者/消费者编译大师'Joe Duffy'提出的代码(更多迭代器乐趣与生产者/消费者模式),但发生此错误:
(我使用的是visual studio 2010和net 4.0.3)
对我微薄的知识来说太多了!有人可以提出解决方案吗?
linq-to-sql - 使用 sqlmetal 生成 dbcontext 会将我的表值 UDF 列创建为可为空的
我创建了一个内联表 UDF,其中包含一些不同类型的列。
但是,尽管某些列设置为非空,但 sqlmetal.exe 将它们创建为可空类型:
为什么它没有得到正确的不可为空的类型?
我将 sqlmetal (Microsoft (R) Database Mapping Generator 2008) 版本 4.0.30319.1 用于 .NET Framework 版本 4。
c# - 在 C# 中具有不可为空的引用类型的基本问题是什么?
目前,C# 中不存在不可为空的类型。很明显,与任何其他功能一样,开发它需要时间和金钱。这里没有问题。但是,我可以看到拥有它的很多好处。最明显的一项是消除对空值检查的需要,并且几乎没有机会出现空引用异常。所以假设我是对的,是否存在一个基本问题使得这个功能太昂贵而无法添加到 C# 中?如果是这样,它是什么?