为文本块分配编号

时间:2014-03-07 12:36:32

标签: c# string windows-phone-8

我想根据随机数的值设置 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,为什么我不能分配呢?

5 个答案:

答案 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();