C# int不包含值的定义

C# int不包含值的定义,c#,C#,我正在使用Visual Studio C#我的代码中出现了此错误,我不知道如何解决: “int”不包含“Value”的定义,并且找不到接受类型为“int”的第一个参数的扩展方法“Value”(是否缺少using指令或程序集引用?) 无效代码为 int Mod = randomizer.Next(2, 11); int sum2 = randomizer.Next(2, 11); modend = Mod * sum2; ModLeft.Text = dividend.ToString(); Mo

我正在使用Visual Studio C#我的代码中出现了此错误,我不知道如何解决:

“int”不包含“Value”的定义,并且找不到接受类型为“int”的第一个参数的扩展方法“Value”(是否缺少using指令或程序集引用?)

无效代码为

int Mod = randomizer.Next(2, 11);
int sum2 = randomizer.Next(2, 11);
modend = Mod * sum2;
ModLeft.Text = dividend.ToString();
ModRight.Text = divisor.ToString();
sum2.Value = 0;

sum2
是一个没有
值的
int
属性。就这些

您可以直接分配它:

sum2 = 0;
改变这个

sum2.Value = 0;
对此

sum2 = 0;

由于
int
没有名为
Value

的属性,只需将代码更改为

sum2=0; Correct
sum2.Value=0; Not Correct
    int Mod = randomizer.Next(2, 11);
    int sum2 = randomizer.Next(2, 11);
    modend = Mod * sum2;
    ModLeft.Text = dividend.ToString();
    ModRight.Text = divisor.ToString();
    sum2= 0;   

as
sum2.value=0不是为整数赋值的正确方法

Sum2是一个int,不能为null,因为它是一个值类型


如果您的值可能为null(在当前示例中没有),则应使用具有“value”属性的可为null的类型。

好奇的是,每个值类型都有一些字段。甚至
Int32
。它被称为
m_值
,它的类型是
int
,它不是公共的。这些事情涉及到一些编译器魔法。

为什么使用
sum2.Value=0
,可以使用
sum2=0只有可为空的类型
int?
具有
property@Rudis而且它也没有
setter
方法。如果将可为null的int更改为不可为null,则可能会发生这种情况。我曾经遇到过同样的问题,使用
动态
类型作为函数参数,然后在函数内部使用
.Value
当我传递的是一个可为null的变量,但是,如果我传递的是一个不可为null的变量,代码将编译,但在运行时会产生错误,因为动态类型在代码运行之前不会验证属性。