now*_*ed. 0 .net c# visual-studio-2010
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();
}
}
Run Code Online (Sandbox Code Playgroud)
抛出编译错误:
无法将void隐式转换为System.Collections.Generic.List.
但是,如果我编写一个方法来获取List<String>
值(因为它是静态成员变量),一切都应该正常工作.但是,我不知道为什么尽管我的方法返回一个List<String>
值,为什么编译器会抛出这个错误?
但是,我不知道为什么尽管我的方法返回一个List值,为什么编译器会抛出这个错误?
该List<T>.Sort()
方法不返回List<T>
.这是一种void
方法 - 它对列表进行了排序.你需要:
a.Sort();
return a;
Run Code Online (Sandbox Code Playgroud)
基本上,具有void
返回类型的方法只能用作独立语句.您不能将它用作返回的表达式,也不能用作方法参数等.
问题是a.Sort()
没有返回值 - 它返回void.请参阅http://msdn.microsoft.com/en-us/library/b0zbh7b6.aspx.在底部添加一行说return a;
.