今天在写代码的时候碰到这个问题。
后来发现自己的代码在定义方法的时候使用了string类型的返回值,但实际上自己返回的ar[ind]不是一个string类型的返回值。而方法前面声明的返回值类型要和实际的返回值类型相一致,所以报错。
加上.ToString()强制转换了一下,就解决问题了。
当然,这种解决方案实际上是不完美的。因为这个ar里面的元素可以是多种类型的,我这样一操作就统统把它们变成string类型了。
完美的解决方案我没去尝试过,只是YY了一下,估计运用out关键词可以实现多种返回值类型吧,这样,定义一些自己需要的返回值类型来针对具体的需求。
因为我目前的需求恰好吻合它返回string类型的值,所以这里这个不完美的问题暂时没有对我形成困扰。
public static string getRamdom(ArrayList ar)//放进一个动态数组就能得到一个动态数组中的随机元素,并且转换为string类型
{
Random ran = new Random();
int ind = ran.Next(0, ar.Count);
return ar[ind]//.ToString();
}