我想根据随机数的值设置 TextBlock 的文字
我考虑过使用toString
来获取随机数的字符串
然后将其分配给 TextBlock
我的代码:
Random Rnd = new Random();
Number1 = Rnd.Next(1, 12);
Number2 = Rnd.Next(1, 12);
num1.Text = Number1.ToString;
num2.Text = Number2.ToString;
当我运行代码时 它给了我以下错误:
无法将方法组'ToString'转换为非委托类型'string'。 你打算调用这个方法吗?
但是双方的类型都是String,为什么我不能分配呢?
答案 0 :(得分:4)
问题是你没有调用ToString
方法。在这个声明中:
num1.Text = Number1.ToString;
... ToString
是一个方法组,可用于转换为委托类型。例如,此 有效:
Func<string> stringProvider = Number1.ToString;
这就是错误消息谈论方法组的原因。
但是,对于方法调用,您肯定需要括号。这是C#和VB之间的区别。 (在VB中,您需要AddressOf
来为方法组创建委托,但不需要在调用无参数方法时指定括号。)
你需要:
num1.Text = Number1.ToString();
num2.Text = Number2.ToString();
(另外,我强烈建议你遵循正常的C#命名约定,其中非常量变量是camelCased而不是PascalCased,但这是一个稍微不同的事情。)
答案 1 :(得分:4)
num1.Text = Number1.ToString;
num2.Text = Number2.ToString;
无效的c#语法。
您可以使用:
num1.Text = Number1.ToString();
num2.Text = Number2.ToString();
或者
num1.Text = Convert.ToString(Number1);
num2.Text = Convert.ToString(Number2);
其中Convert.ToString
处理null
值,而value.ToString()
不处理。{/ p>
答案 2 :(得分:3)
尝试此操作,因为.Next()
会返回int
num1.Text = Number1.ToString();
num2.Text = Number2.ToString();
答案 3 :(得分:2)
您需要将Number1和Number2转换为类似
的字符串num1.Text = Number1.ToString();
num2.Text = Number2.ToString();
答案 4 :(得分:2)
在将数字1和数字2分配给文本框(如
)之前,必须将其转换为字符串 num1.Text=Number1.ToString();
num2.Text=Number2.ToString();