0
class A
{
    public static List<String> a = new List<string>();

    public static List<String> test()
    {
        A.a.Add("20");
        A.a.Add("30");
        A.a.Add("40");
        return a.Sort();

    }
}

抛出编译错误:

无法将 void 隐式转换为 System.Collections.Generic.List。

但是,如果我编写一个方法来获取List<String>值(因为它是静态成员变量),一切都应该可以正常工作。但是,我不知道为什么尽管我的方法返回了一个List<String>值,为什么编译器会抛出这个错误?

4

3 回答 3

8

但是,我不知道为什么尽管我的方法返回一个 List 值,为什么编译器会抛出这个错误?

List<T>.Sort()方法返回List<T>. 这是一种void方法 - 它对列表进行适当的排序。你需要:

a.Sort();
return a;

基本上,具有void返回类型的方法只能用作独立语句。您不能将其用作要返回的表达式或方法参数等。

于 2012-09-05T06:16:09.257 回答
5

问题是它a.Sort()没有返回值 - 它返回 void。请参阅http://msdn.microsoft.com/en-us/library/b0zbh7b6.aspx。在底部添加一行return a;.

于 2012-09-05T06:16:35.833 回答
4

sort 是 void 函数,它只对您的列表进行排序并且不返回列表 <> 使用下面的代码

  class A
    {
    public static List<String> a = new List<string>();

    public static List<String> test()
    {
        A.a.Add("20");
        A.a.Add("30");
        A.a.Add("40");
       A.a.Sort();
         return a;
    }

}
于 2012-09-05T06:36:44.633 回答