没有超载的方法' ToString'需要1个参数

时间:2017-07-21 06:03:38

标签: c#

为游戏制作模型,并且我总是试图获得角色的名字,当它产生时,马特。

但是,这对我来说并不顺利。尽管我自己解决了无数问题,但我找不到解决这个错误的方法:

  

方法没有超载' ToString'需要1个参数

以下是代码:

switch (WorldGen.genRand.Next(0))
{
    case 0:
        return ToString("Matt");
}

2 个答案:

答案 0 :(得分:1)

ToStringvirtual类的Object方法。可用于将类型转换为字符串。所以你试图使用的方式是不正确的。将代码更改为此。此外,“Matt”已经是字符串格式,因此您无需转换它。如果您的方法返回字符串类型,那么您应该使用

switch (WorldGen.genRand.Next(0))
{
    case 0:
        return "Matt";
}

由于

答案 1 :(得分:0)

  

方法'ToString'没有重载需要1个参数

该消息清楚表明ToString不接受任何参数。你可能正在尝试做类似的事情(请注意下面代码中的注释):

using System;

public class Program
{
    public static void Main()
    {
        var sc = new SomeClass();
        sc.ToString(); // works
        // does not work because SomeClass does not have a ToString method
        /// which takes one parameter
        sc.ToString("whatever");
    }
}

public class SomeClass
{
}

在上面的代码中,SomeClass没有ToString方法,但默认情况下,所有类都派生Object类,其中ToString()方法。因此,调用ToString()(不带任何参数)将起作用,因为该方法是从Object继承的。但是,调用ToString("WithArgument")将无效并导致您获得的异常。如果您只想返回Matt或任何其他字符串,只需执行以下操作:

return "Matt"; // or anything else