gpt4 book ai didi

c# - 将可空参数传递给方法

转载 作者:行者123 更新时间:2023-11-30 20:03:00 25 4
gpt4 key购买 nike

这是我目前的方法,但有时我不得不处理这个问题,我想知道是否有更优雅的方法。

我有:长? LoadEntityId 字段。我有一个方法,我将其用作参数:

private bool IsUsedInProduction(long? loadEntityId)

问题是,当 LoadEntityId 实际上为 null 时,我得到 Nullable object must have a value.

我现在做的是:

if ((byte)cboStatus.SelectedValue == 10
&& LoadEntityId.HasValue
&& IsUsedInProduction(LoadEntityId.Value))

但我认为应该有更好的方法来解决这个问题。

附言

看来我的解释不够清楚,所以问题是如果我:

if ((byte)cboStatus.SelectedValue == 10
&& IsUsedInProduction(LoadEntityId.Value))

(删除 LoadEntityId.HasValue 检查)当 LoadEntityId 实际上为 null 时,如果我离开它,我会得到异常 - 好吧,我只是在寻找一种方法来使我的代码在没有此检查的情况下工作。

最佳答案

您使用了正确的方法。

共有三个选项:

1) 检查 loadEntityId.HasValue,然后使用 loadEntityId.Value(您现在使用的)

2) 使用loadEntityId.GetValueOrDefault()

if ((byte)cboStatus.SelectedValue == 10
&& IsUsedInProduction(loadEntityId.GetValueOrDefault()))

3) 使用 ??运算符

if ((byte)cboStatus.SelectedValue == 10
&& (IsUsedInProduction(loadEntityId ?? 0))

关于c# - 将可空参数传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15901506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com