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;

基本的に、voidreturn型のメソッドは、スタンドアロンステートメントとしてのみ使用できます。返す式として、またはメソッド引数などとして使用することはできません。

于 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 is void functionそれはあなたのリストをソートするだけで、リストを返さない<>以下のコードを使用する

  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 に答える