标签: nullable

将类型param的实例与null进行比较,即使没有类约束?

以下代码编译:

class Testing<TKey, TValue>
{
    public bool Test(TKey key)
    {
        return key == null;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,TKey可以是值类型,并且可能不允许值"null".

我知道这个程序的结果,以及如何添加约束.我想知道为什么当TKey不被约束为"类"时,编译器不会禁止这个?

c# generics nullable

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

C#:可以为nullable类型(int?)对象?

我从这篇文章中了解到C#中的值类型不是对象.也就是说,它们不会从System.Object继承.

假设我的逻辑到目前为止,是可以为空的类型,例如int ?,对象.他们是从Object继承的吗?

如果是这样,它们是否受到与其他对象相同的规则和约束,或者是否存在管理其行为的特殊规则?

作为参考,这个问题来自对null coalesce运算符的工作的调查.

c# nullable object

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

什么是"时间跨度?" 在c#中意味着什么?

问号在变量的末尾意味着什么?

TimeSpan? begin = // bla bla bla
Run Code Online (Sandbox Code Playgroud)

编码语言是c#

c# variables nullable

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

Java中的对象空值检查

推荐哪一个用于检查Object null-ness?

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

要么

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

和其他方式

null == Object
Run Code Online (Sandbox Code Playgroud)

要么

Object == null
Run Code Online (Sandbox Code Playgroud)

......他们之间有什么区别吗?

java nullable

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

转换int?有条件的bo ..

所以我在c#中创建了一个自定义的int.tryparse方法,试图让事情变得更简单,更清晰.这是方法:

    public static int? BoolIntParse(string number)
    {
        int temp;
        if (int.TryParse(number, out temp))
            return temp;
        else
            return null;
    }
Run Code Online (Sandbox Code Playgroud)

现在,我想尝试以这种方式使用它:

if(int? someNumber = BoolIntParse(someString))
{
    //do some stuff if its a number
}
else
   //throw some error 
Run Code Online (Sandbox Code Playgroud)

哪个似乎不起作用.我也尝试在condtional之前分配值,例如:

int? someNumber = BoolIntParse(someString);
if(someNumber)
{
    //do some stuff if its a number
}
else
   //throw some error 
Run Code Online (Sandbox Code Playgroud)

我收到错误消息 Cannot implicitely convert type int? to bool

所以这不是合法的c#.这是一个nullible int是为(这种情况)设计的,还是我没有正确地做到这一点?我对c#比较新.

c# integer nullable conditional-statements

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

参考类型中的C#HasValue

是否可以Nullable<>.HasValue在引用类型上使用?

假设我们从值类型中得到了这个例子:

int? a = GetNullOrValue(); // completely randomly gets random number or null
if (a.HasValue) return 0;
Run Code Online (Sandbox Code Playgroud)

我想要完成的是:

class Foo 
{
    public string Bar { get; set; }
}

Foo foo = GetNullOrFoo(); // completely randomly gets Foo ref. or null

if (foo.HasValue) return foo.Bar; // of course this will throw NullReferenceException if foo is null
Run Code Online (Sandbox Code Playgroud)

我希望实现这一点以获得更好的可读性,因为我更喜欢"单词内容",而不是"符号内容"(x.HasValue而不是x != null).

c# nullable reference reference-type

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

将Nullable转换为ValueType

有什么区别Nullable.Value(<whatEverType>) Nullable?据我所知,如果未设置值或值本身,则两个方法都返回NULL.

例如:

DateTime? date = DateTime.Now;
DateTime now = (DateTime) date;
DateTime now2 = date.Value;
Run Code Online (Sandbox Code Playgroud)

c# nullable

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

使用可为空的泛型参数创建列表

我想要一个包含可空Ts的列表的通用类(在类型T中).

class MyClass<T>
{
     List<T?> myNullableList; 
}
Run Code Online (Sandbox Code Playgroud)

无法编译时出现以下错误.

错误CS0453:类型`T'必须是非可空值类型才能在泛型类型或方法`System.Nullable'中将其用作类型参数`T'

我究竟做错了什么?

c# nullable

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

如何获得可以为空的字符串值?

[HttpGet]
public ActionResult Login(string? returnUrl)
{
    if (Request.IsAuthenticated)
    {
        if(returnUrl.HasValue)
           return RedirectToAction("Index", "Home");
        else
           return RedirectToAction(returnUrl);
    }
    return View();
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

错误:'System.Web.Mbv.Controller.Redirect(string)'的最佳重载方法匹配有一些无效的参数

如何使用可空字符串 RedirectToAction()

c# variables asp.net-mvc nullable

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

为什么可以为Nullable变量赋值?

为什么下面的行编译?对我来说,Nullable<double>是一个结构,我们不能为这种类型的变量赋值"null".

        Nullable<double> someVar = null;
Run Code Online (Sandbox Code Playgroud)

赋值运算符不应该是可覆盖的,但可能是一些语法糖,编译器知道它必须将其更改为?

        Nullable<double> someVar = new Nullable<double>();
        someVar.Value = null;
Run Code Online (Sandbox Code Playgroud)

c# nullable

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