0

公開静的リストの個別値を取得する方法

//get value error
Console.WriteLine(lbl_test.module_a.moduleoutput[0]);


public static List<string> moduleoutput()
{
    List<string> output = new List<string>();
    output.Add("test 1");
    output.Add("test 2");
    output.Add("test 3");
    return output;
}

エラー: タイプ 'メソッド グループ' の式に [] を使用したインデックスを適用することはできません

4

3 に答える 3

3

インデクサーでリストにアクセスするには、まずリストを取得する必要があります。そのため、メソッド呼び出しが欠落しています (括弧)。moduleoutput変数ではなくメソッドです。

Console.WriteLine(lbl_test.module_a.moduleoutput()[0]);

ここでメソッド アクセスを検索してください: http://msdn.microsoft.com/en-us/library/ms173114.aspx

オブジェクトのメソッドを呼び出すことは、フィールドにアクセスすることに似ています。オブジェクト名の後に、ピリオド、メソッドの名前、および括弧を追加します。引数は括弧内にリストされ、コンマで区切られます。

于 2012-08-21T22:07:34.013 に答える
2

これはプロパティではなくメソッドです。メソッドを呼び出す必要があります。

おそらくそれをプロパティにしたいでしょう:

public static List<string> moduleoutput 
{
    get 
        { 
            List<string> output = new List<string>();
            output.Add("test 1");
            output.Add("test 2");
            output.Add("test 3");
            return output;
        }
}
于 2012-08-21T22:08:31.120 に答える
1

あなたはそれを間違って呼んでいると思います。moduleoutputメソッドではなく変数として呼び出しています。ブラケットを忘れました:

Console.WriteLine(lbl_test.module_a.moduleoutput()[0]);

以下のコード例は完全に機能します。

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(Moduleoutput()[0]);
        Console.ReadLine();
    }

    public static List<string> Moduleoutput()
    {
        List<string> output = new List<string>();
        output.Add("test 1");
        output.Add("test 2");
        output.Add("test 3");
        return output;
    }
}
于 2012-08-21T22:11:17.267 に答える