【问题标题】:Nullable value type comparison with is-operator可空值类型与 is 运算符的比较
【发布时间】:2022-12-09 17:13:42
【问题描述】:

我想知道,在使用可空值类型时,在 C# 中进行常规值比较或对 is-operator 进行值比较之间在技术上是否存在任何区别。

给定以下示例:

decimal? value = null;

value < 0; // returns false

value is < 0; // returns false

考虑到它都返回 false,我只是想知道这两个比较是否有任何技术差异。

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    is 运算符用于检查对象的运行时类型是否与给定类型兼容。所以这是一种类型比较。

    常规值比较 - 比较相同类型对象的值。

    这是两种不同的含义和用法。

    【讨论】:

    • 那么在这种情况下 is 运算符针对哪种类型进行检查呢?它会检查我的value 是否属于int 类型,因为 0 隐含地是 int 并因此返回 false,或者它实际上在这里返回 false,因为值实际上不小于 0?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 2012-05-14
    • 1970-01-01
    相关资源
    最近更新 更多