标签: nullable

什么是'长?' 数据类型?

我正在浏览另一个开发人员编写的一些代码,我不确定是什么long?意思:

protected string AccountToLogin(long? id)
{
   string loginName = "";
   if (id.HasValue)
   {
      try
      {....
Run Code Online (Sandbox Code Playgroud)

c# nullable

45
推荐指数
4
解决办法
6万
查看次数

在SQL中获取null == null

我希望在可空列上搜索数据库表.有时我搜索的值本身就是NULL.因为Null等于什么,甚至是NULL,说

where MYCOLUMN=SEARCHVALUE 
Run Code Online (Sandbox Code Playgroud)

将失败.现在我不得不诉诸

where ((MYCOLUMN=SEARCHVALUE) OR (MYCOLUMN is NULL and SEARCHVALUE is NULL))
Run Code Online (Sandbox Code Playgroud)

有更简单的说法吗?

(如果重要,我正在使用Oracle)

sql oracle null nullable

44
推荐指数
6
解决办法
2万
查看次数

可空类型不是可以为空的类型?

我正在使用可空类型进行一些测试,并且它没有像我预期的那样工作:

int? testInt = 0;
Type nullableType = typeof(int?);
Assert.AreEqual(nullableType, testInt.GetType()); // not the same type
Run Code Online (Sandbox Code Playgroud)

这也不起作用:

DateTime? test = new DateTime(434523452345);
Assert.IsTrue(test.GetType() == typeof(Nullable)); //FAIL 

DateTime? test = new DateTime(434523452345);
Assert.IsTrue(test.GetType() == typeof(Nullable<>)); //STILL FAIL
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么testInt.GetType()返回int,而typeof(int?)返回真正的可空类型?

.net c# nullable gettype

44
推荐指数
2
解决办法
4423
查看次数

C#.Net中的可选返回

Java 1.8正在接收Optional类,它允许我们明确说明方法何时可以返回空值并"强制"其使用者isPresent()在使用它之前验证它是否为null().

我看到C#有Nullable,它做了类似的事情,但有基本类型.它似乎用于数据库查询,以区分值何时存在,并且当它不存在时为0并且为空.

但似乎C#的Nullable不适用于对象,仅适用于基本类型,而Java的Optional仅适用于对象而不适用于基本类型.

在C#中是否有Nullable/Optional类,这迫使我们在提取和使用它之前测试对象是否存在?

.net c# nullable optional

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

如何检查多个对象的无效?

通常,我可以看到如下代码构造:

if(a == null || b == null || c == null){
    //...
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何广泛使用的库(谷歌,阿帕奇等)同时检查多个对象的无效,例如:

if(anyIsNull(a, b, c)){
    //...
}
Run Code Online (Sandbox Code Playgroud)

要么

if(allAreNulls(a, b, c)){
    //...
}
Run Code Online (Sandbox Code Playgroud)

更新:

  1. 我完全知道如何自己写
  2. 我知道这可能是程序结构不佳的结果,但这不是一个案例
  3. 让它更具挑战性,并用以下内容替换原始示例:

    if(a != null && a.getFoo() != null && a.getFoo().getBar() != null){
        //...
    }
    
    Run Code Online (Sandbox Code Playgroud)

更新2:

我已经为Apache Commons Lang库创建了一个pull请求来修复这个差距:

这些将被纳入commons-lang,版本3.5:

  • anyNotNull (Object... values)
  • allNotNull (Object... values)

java null nullable

43
推荐指数
4
解决办法
3万
查看次数

我为什么要指定@Column(nullable = false)?

我有一个注释的实体@Entity.
如果我负责创建CREATE TABLE脚本,为什么我应该指定@Column( nullable = false )何时可以使用NOT NULL关键字在数据库中创建列?是否有任何示例显示在字段中使用此属性的好处?

java jpa nullable jpa-2.0

42
推荐指数
2
解决办法
4万
查看次数

myNullableLong.HasValue和myNullableLong!= null之间有什么区别吗?

例如,当我有一个可以为空的长度时,它们之间是否有任何区别

myNullableLong.HasValue 
Run Code Online (Sandbox Code Playgroud)

myNullableLong != null
Run Code Online (Sandbox Code Playgroud)

......还是只是'语法糖'?

c# nullable

41
推荐指数
2
解决办法
7873
查看次数

C#|| 操作员不使用可空的布尔值

我的LINQ中有以下代码:

    where (tf.Shipped || tf.Ordered || tf.Processed)
Run Code Online (Sandbox Code Playgroud)

请注意,Shipped,Ordered和Processed都是可以为空的布尔字段

我收到以下消息:

运营商|| 不能应用于'bool'类型的操作数?和'布尔?'

不知道如何解决这个问题,他们需要是可以为空的布尔值,我需要使用OR(||).

c# boolean nullable

41
推荐指数
4
解决办法
2021
查看次数

不了解具有Nullable类型的预减量运算符行为

好吧,对于你们中的一些人来说这可能是显而易见的,但我对这个相当简单的代码所得到的行为感到难过:

public static void Main(string[] args)
{
    int? n = 1;
    int i = 1;
    n = ++n - --i;
    Console.WriteLine("Without Nullable<int> n = {0}", n); //outputs n = 2

    n = 1;
    i = 1;
    n = ++n - new Nullable<int>(--i);
    Console.WriteLine("With Nullable<int> n = {0}", n); //outputs n = 3
    Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)

我将两个输出都视为相同且等于2但奇怪的是它们不是.有人可以解释原因吗?

编辑:尽管代码生成这个"怪异"的行为固然做作,它看起来像在C#编译器中的错误虽然看似不重要,原因似乎是内联new詹姆斯最初指出.但行为不仅限于运营.方法调用的行为方式完全相同,也就是说,当它们只应被调用一次时,它们被调用两次.

考虑以下repro:

public static void Main()
    {
        int? n = 1;
        int i = 1;
        n = n …
Run Code Online (Sandbox Code Playgroud)

c# nullable

41
推荐指数
1
解决办法
760
查看次数

在C#中获取System Nullable datetime(datetime?)的简短日期

如何获得短期约会 System Nullable datetime (datetime ?)

对于ed 12/31/2013 12:00:00- >只应该返回12/31/2013.

我看不到ToShortDateString可用的.

.net c# datetime nullable

41
推荐指数
4
解决办法
3万
查看次数

标签 统计

nullable ×10

c# ×7

.net ×3

java ×2

null ×2

boolean ×1

datetime ×1

gettype ×1

jpa ×1

jpa-2.0 ×1

optional ×1

oracle ×1

sql ×1