标签: nullable

我可以创建一个接受Nullable <something>的泛型函数吗?

我正在研究一种方法,它接受StreamWriter,字符串或可空值,以及长度,并将值写入StreamWriter,填充到长度.如果值为null,我想写空格.我想做一些类似下面的简化示例,仅用于演示目的.

public void FixedWrite(StreamWriter writer, string value, 
        int length) {
    if (value == null) value = "";
    value = value.PadRight(length);
    writer.Write(value);
}

public void FixedWrite<T>(StreamWriter writer, T value, 
        int length) where T : Nullable /* won't work of course */ {
    string strVal;
    if (!value.HasValue) strVal = null;
    else strVal = value.Value.ToString();
    FixedWrite(writer, strVal, length);
}
Run Code Online (Sandbox Code Playgroud)

我可以为所有不同的底层类型(它们都是日期,整数,粗体和小数)进行重载,但我想知道我是否可以使通用版本正常工作.有没有办法让T永远是一个Nullable <>类型,并访问Nullable <>属性(HasValue和Value)?或者我应该坚持基础类型特定的重载?

这个问题提出了类似的问题,但在我的情况下,值已经是nullables,我只想写出值,如果它有一个,如果没有,则写出空格.

.net generics nullable

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

如何使用Django在数据库中插入NULL

我在Django中插入NULL时遇到问题.我的意思是我不知道该怎么做.

我有函数,让我们调用它find_position,然后我在模型中有字段position(IntegerField,null = True,blank = True).这个函数检查一些html代码,如果它与一些正则表达式匹配,它返回整数,但如果它没有找到 - 必须返回NULL或None或我可以放在数据库中的东西.

 def find_position(self, to_find, something): 
   ...
       if re.search(to_find, something): 
           return i + (page * 10) + 1 
    return NULL # or what i have to return here?
Run Code Online (Sandbox Code Playgroud)

我有这个:

_position = find_position(to_find, something)
p = Result(position=_position, ...)
r.save()
Run Code Online (Sandbox Code Playgroud)

以前我用CharField for position,如果找不到结果,则返回' - '.但我在计算总结果时遇到了问题,比如position__lte = 10(因为它不是,integer而且它与数字和字符串搞混了-.

我该怎么办?

database django integer nullable django-models

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

有没有办法定义一个带有约束的泛型接口,该约束可以为null(但不能是值类型)?

我想定义一个通用接口,它允许可以为空的值类型(int?,double?等)和类类型(也可以为null).我不想允许简单的值类型.有没有办法做到这一点?

.net c# generics nullable

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

'.' null可空的运算符

你怎么能访问null nullable的propery HasValue
我查看了编译的代码,它不是语法糖.

为什么这不会抛出NullReferenceException:

int? x = null;
if (x.HasValue)
{...}
Run Code Online (Sandbox Code Playgroud)

.net c# compiler-construction null nullable

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

LINQ检查空值

如何检查Linq中的Null?

我有一个第三方代码,它返回一个可以为空DataTable的列类型DateTime.

我的代码:

 var profile = (from d in ds.Tables[0].AsEnumerable()
               select new User
               {
                 FirstName = d["FirstName"].ToString(), 
                 Birthdate = Convert.ToDateTime(d["BirthDate"].ToString())
               }).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

返回一个错误是,Object cannot be cast from DBNull to other typesBirthdate=声明.

我尝试使用以下代码但返回一个强制转换异常(无法从字符串强制转换为DateTime?)

Birthdate = (DateTime?)d["BirthDate"].ToString();
Run Code Online (Sandbox Code Playgroud)

有没有办法快速检查空值?

linq asp.net-mvc nullable

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

清除为可空布尔值编写代码的方法

是否有更简洁的方法来编写此代码.我感觉可能有,但我不知道如何.

    if (loadedFormData.Education.AwardedADegree==true)
    {
        this.radiobuttonNoAwarded.Checked = false;
        this.radiobuttonYesAwarded.Checked = true;
    }
    if (loadedFormData.Education.AwardedADegree == false)
    {
        this.radiobuttonNoAwarded.Checked = true;
        this.radiobuttonYesAwarded.Checked = false;
    }
    else // AwardedADegree is null
    {
        this.radiobuttonNoAwarded.Checked = false;
        this.radiobuttonYesAwarded.Checked = false;

    }
Run Code Online (Sandbox Code Playgroud)

c# asp.net nullable

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

对于System.drawing.PoinF,c#为null

我正在使用C#进行格式化.现在我想为PointF返回一个null

    /// <summary>
    /// Project the point according to camera position.
    /// </summary>
    /// <param name="p">Point position, in WC</param>
    /// <returns>pixel position</returns>
    public PointF Project(MCvPoint3D32f p)
    {
        //return new PointF(p.x, p.y);
        // Extend p
        Matrix<double> p_ex = new Matrix<double>(3, 1);
        p_ex[0, 0] = p.x;
        p_ex[1, 0] = p.y;
        p_ex[2, 0] = p.z;

        var rst = HomographMatrix * p_ex;
        rst[0, 0] = rst[0,0] / rst[2, 0] * focalLength * scale;
        rst[1, 0] = rst[1, 0] / rst[2, 0] * focalLength * …
Run Code Online (Sandbox Code Playgroud)

c# system.drawing nullable

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

为Nullable <Guid>分配值

我正在尝试创建一个变量Guid?表示可以为空的db列.我在分配价值时遇到问题.我能够轻松地为变量赋值null.但是当我想分配一个Guid值时,我必须创建一个新的Guid?不接受字符串的对象.

Guid? sample=new Guid?(someString); // erroing "Cannot implicitly convert string to Guid"
Run Code Online (Sandbox Code Playgroud)

所以我必须这样做

Guid? sample=new Guid?(new Guid(someString)); // working code
Run Code Online (Sandbox Code Playgroud)

我还有条件地分配值.

Guid? sample=(string.IsNullOrWhiteSpace(someString))?null: new Guid?(new Guid(someString)); 
Run Code Online (Sandbox Code Playgroud)

为什么Guid会出现这个问题?

c# nullable

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

为什么将$ null传递给带有AllowNull()的参数会导致错误?

请考虑以下代码:

function Test
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory=$true)]
        [AllowNull()]
        [String]
        $ComputerName
    ) 
    process{}
}

Test -ComputerName $null
Run Code Online (Sandbox Code Playgroud)

基于官方文档AllowNull我期待的$ComputerName可能是[string]$null.但是,运行上面的代码会导致以下错误:

[14,24:Test]无法将参数绑定到参数'ComputerName',因为它是一个空字符串.

为什么$ComputerName在这种情况下不传递$ null用于工作?

parameters powershell nullable

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

查看可空类型是否具有值的最简洁方法是什么,如果有,则将该值与另一个非可空类型的值进行比较?

我有两个可以为空的枚举,我想比较两个常规枚举的值.如果可以为空的枚举没有值,我希望比较评估为true.这是我的逻辑到目前为止的样子:

if (!nullableEnumOne.HasValue || nullableEnumOne.Value == regularEnumOne) 
    && (!nullableEnumTwo.HasValue || nullableEnumTwo.Value == regularEnumTwo)
{
    //do something
}
Run Code Online (Sandbox Code Playgroud)

有没有办法简化我错过的逻辑?

c# nullable

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