标签: nullable

Nullable ToString()

我看到到处都是如下结构:

int? myVar = null;
string test = myVar.HasValue ? myVar.Value.ToString() : string.Empty;
Run Code Online (Sandbox Code Playgroud)

为什么不简单地使用:

string test = myVar.ToString();
Run Code Online (Sandbox Code Playgroud)

那不完全一样吗?至少Reflector说:

public override string ToString()
{
  if (!this.HasValue)
  {
    return "";
  }
  return this.value.ToString();
}
Run Code Online (Sandbox Code Playgroud)

那么,这是正确的(较短的版本)还是我错过了什么?

c# nullable

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

C#可空字符串错误

private string? typeOfContract
{
  get { return (string?)ViewState["typeOfContract"]; }
  set { ViewState["typeOfContract"] = value; }
}
Run Code Online (Sandbox Code Playgroud)

稍后在代码中我使用它如下:

typeOfContract = Request.QueryString["type"];
Run Code Online (Sandbox Code Playgroud)

typeOfContract在行声明的声明中收到以下错误:

类型'string'必须是不可为空的值类型,以便在泛型类型或方法'System.Nullable <T>'中将其用作参数'T'

有任何想法吗?基本上,我想确保在执行操作之前"type"存在QueryString.

c# nullable

136
推荐指数
4
解决办法
13万
查看次数

可空类型是引用类型吗?

当我宣布一个可以int为空的时候

int? i=null;
Run Code Online (Sandbox Code Playgroud)

i这里是否成为参考类型?

.net c# types nullable

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

比较运算符如何与null int一起使用?

我开始学习可空类型并遇到以下行为.

在尝试nullable int时,我看到比较运算符给了我意想不到的结果.例如,在我的下面的代码中,我得到的输出是"两个和1相等".请注意,它也不会打印"null".

int? a = null;
int? b = 1;

if (a < b)
    Console.WriteLine("{0} is bigger than {1}", b, a);
else if (a > b)
    Console.WriteLine("{0} is bigger than {1}", a, b);
else
    Console.WriteLine("both {0} and {1} are equal", a, b);
Run Code Online (Sandbox Code Playgroud)

我希望任何非负整数都大于null,我错过了什么吗?

c# nullable

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

c#为什么不能将nullable int赋值为null

解释为什么无法为int赋值null,例如

int? accom = (accomStr == "noval" ? null  : Convert.ToInt32(accomStr));
Run Code Online (Sandbox Code Playgroud)

这段代码出了什么问题?

c# nullable

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

如何更有效地使用@Nullable和@Nonnull注释?

我可以看到@Nullable@Nonnull注释可以在防止有用NullPointerException秒,但他们并不很远传播.

  • 在一个间接层之后,这些注释的有效性完全下降,所以如果你只添加一些注释,它们就不会传播得很远.
  • 由于这些注释没有得到很好的执行,因此存在假设标记的值@Nonnull不为空并因此不执行空检查的危险.

下面的代码会导致标有一个参数@Nonnullnull没有提出任何投诉.它会NullPointerException在运行时抛出.

public class Clazz {
    public static void main(String[] args){
        Clazz clazz = new Clazz();

        // this line raises a complaint with the IDE (IntelliJ 11)
        clazz.directPathToA(null);

        // this line does not
        clazz.indirectPathToA(null); 
    }

    public void indirectPathToA(Integer y){
        directPathToA(y);
    }

    public void directPathToA(@Nonnull Integer x){
        x.toString(); // do stuff to x        
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法使这些注释更严格地执行和/或进一步传播?

java annotations nullable nullpointerexception code-standards

120
推荐指数
7
解决办法
14万
查看次数

在WPF绑定中将值设置为null

请看下面一行

<TextBox Text="{Binding Price}"/>
Run Code Online (Sandbox Code Playgroud)

上面的价格属性是Decimal?(可以为十进制).

我希望如果用户删除文本框的内容(即输入空字符串,它应该自动更新源为null(在VB中为Nothing).

关于如何做到'Xamly'的任何想法?

string wpf binding nullable .net-3.5

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

如何将DateTime.TryParse与Nullable <DateTime>一起使用?

我想使用DateTime.TryParse方法将字符串的datetime值变为Nullable.但是,当我尝试这个:

DateTime? d;
bool success = DateTime.TryParse("some date text", out (DateTime)d);
Run Code Online (Sandbox Code Playgroud)

编译告诉我

'out'参数未被归类为变量

不知道我需要做什么.我也尝试过:

out (DateTime)d.Value 
Run Code Online (Sandbox Code Playgroud)

这也不起作用.有任何想法吗?

c# datetime nullable

110
推荐指数
5
解决办法
9万
查看次数

转换可空的布尔?布尔

你如何将一个可空置换bool?boolC#?

我试过x.Value还是x.HasValue......

c# nullable

109
推荐指数
6
解决办法
8万
查看次数

在javax.annotation中找不到@Nullable.*

我想用@Nullable 注释来消除NullPointerExceptions.我在网上找到了一些教程,我注意到这个注释来自包javax.annotation.Nullable; 但是当我导入它时会产生编译错误:无法找到符号

java annotations nullable nullpointerexception null-pointer

102
推荐指数
6
解决办法
10万
查看次数