检查 int 是否在范围内时无法将 void 转换为 int

艾伦2

我正在使用这段代码,它给了我一个错误,说它不能将 void 转换为 int:

    private static int aBtn;
    public static int ABtn
    {
        get => aBtn;
        set => aBtn = CheckArgumentRange(nameof(value), value, 0, 5);
    }

    internal static void CheckArgumentRange(
        string paramName, int value, int minInclusive, int maxInclusive)
    {
        if (value < minInclusive || value > maxInclusive)
        {
            throw new ArgumentOutOfRangeException(paramName, value,
                $"Value should be in range [{minInclusive}-{maxInclusive}]");
        }
    }

任何人都可以看到出了什么问题以及为什么会出现此错误?

约利乌斯

如果未超出范围,您将需要返回该值。否则该集合不会收到一个 int。
所以只需return value;在你的 if 后面加上你应该很好。

编辑:当然将返回类型从 void 更改为 int。

    private static int aBtn;
    public static int ABtn
    {
        get => aBtn;
        set => aBtn = CheckArgumentRange(nameof(value), value, 0, 5);
    }

    internal static int CheckArgumentRange(
        string paramName, int value, int minInclusive, int maxInclusive)
    {
        if (value < minInclusive || value > maxInclusive)
        {
            throw new ArgumentOutOfRangeException(paramName, value,
                $"Value should be in range [{minInclusive}-{maxInclusive}]");
        }

        return value;
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将int转换为void *

来自分类Dev

如何将“ void(MyClass :: *)(int)”转换为“ void(*)(int)”?

来自分类Dev

将void *转换为int并返回

来自分类Dev

将int函数转换为void *

来自分类Dev

将void *转换为int并返回

来自分类Dev

C / C ++将void *强制转换为int(*())(int,...);

来自分类Dev

无法将参数'2'的'int(Scheduler :: *)(int,void *)'转换为'int(*)(int,void *)'到'bool irq_InstallISR(int,int(*)(int,void *),无效*)'

来自分类Dev

无法将类型“ void”隐式转换为“ int”?

来自分类Dev

类型不匹配:无法从void转换为int

来自分类Dev

将 map<string, int> 转换为 void* 并返回并获取键

来自分类Dev

检查是否相等时将String转换为Int或将Int转换为String更有效?

来自分类Dev

无法从int转换为int **

来自分类Dev

无法从int转换为int **

来自分类Dev

将[Int?]转换为[Int]

来自分类Dev

尝试创建线程时从'void *(*)(int(*)[2])'无效转换为'void *(*)(void *)

来自分类Dev

无法将“Int”类型的值转换为预期的参数类型“(inout UnsafeMutableBufferPointer<_>, inout Int) throws -> Void”

来自分类Dev

从(void **)转换为(int *),反之亦然

来自分类Dev

为什么将指向int的指针转换为void *但将指向函数的指针转换为bool?

来自分类Dev

将int指针转换为void指针,然后转换为双指针

来自分类Dev

如何将void指针转换为int指针,然后将int指针存储在其中?

来自分类Dev

范围内的枚举:错误:初始化时无法将'int'转换为'Handle'

来自分类Dev

范围内的枚举:错误:初始化时无法将'int'转换为'Handle'

来自分类Dev

为什么在C ++中不允许将static_cast从int(*)(int)转换为void *?

来自分类Dev

C ++在声明为void类型后将int转换为int?

来自分类Dev

如何正确地将 vector<int> 转换为 void* 并返回到 vector<int>?

来自分类Dev

将Array {Int64}转换为Array {Int32}时检查溢出的方法

来自分类Dev

无法将int {Class} :: *转换为int *

来自分类Dev

无法将(int *)转换为int

来自分类Dev

无法将int {Class} :: *转换为int *

Related 相关文章

  1. 1

    将int转换为void *

  2. 2

    如何将“ void(MyClass :: *)(int)”转换为“ void(*)(int)”?

  3. 3

    将void *转换为int并返回

  4. 4

    将int函数转换为void *

  5. 5

    将void *转换为int并返回

  6. 6

    C / C ++将void *强制转换为int(*())(int,...);

  7. 7

    无法将参数'2'的'int(Scheduler :: *)(int,void *)'转换为'int(*)(int,void *)'到'bool irq_InstallISR(int,int(*)(int,void *),无效*)'

  8. 8

    无法将类型“ void”隐式转换为“ int”?

  9. 9

    类型不匹配:无法从void转换为int

  10. 10

    将 map<string, int> 转换为 void* 并返回并获取键

  11. 11

    检查是否相等时将String转换为Int或将Int转换为String更有效?

  12. 12

    无法从int转换为int **

  13. 13

    无法从int转换为int **

  14. 14

    将[Int?]转换为[Int]

  15. 15

    尝试创建线程时从'void *(*)(int(*)[2])'无效转换为'void *(*)(void *)

  16. 16

    无法将“Int”类型的值转换为预期的参数类型“(inout UnsafeMutableBufferPointer<_>, inout Int) throws -> Void”

  17. 17

    从(void **)转换为(int *),反之亦然

  18. 18

    为什么将指向int的指针转换为void *但将指向函数的指针转换为bool?

  19. 19

    将int指针转换为void指针,然后转换为双指针

  20. 20

    如何将void指针转换为int指针,然后将int指针存储在其中?

  21. 21

    范围内的枚举:错误:初始化时无法将'int'转换为'Handle'

  22. 22

    范围内的枚举:错误:初始化时无法将'int'转换为'Handle'

  23. 23

    为什么在C ++中不允许将static_cast从int(*)(int)转换为void *?

  24. 24

    C ++在声明为void类型后将int转换为int?

  25. 25

    如何正确地将 vector<int> 转换为 void* 并返回到 vector<int>?

  26. 26

    将Array {Int64}转换为Array {Int32}时检查溢出的方法

  27. 27

    无法将int {Class} :: *转换为int *

  28. 28

    无法将(int *)转换为int

  29. 29

    无法将int {Class} :: *转换为int *

热门标签

归档