0

カスタムクラスが定義されています:

class Car
{
    public string a;
    public string b;
    public string c;

    public static void GetCar()
    {
        var car = new Car[4];
        for(int i=0; i<4; ++i)
        {
            novica[i]= new Novica();
            novica[i].a="abc";
            novica[i].b="abc";
            novica[i].c="abc";
        }

    }
}

これにより、配列に値が入力されます。このクラスの一部ではない関数で、取得した値 (HTML からの文字列の読み込み) でこの配列を使用したいと考えています。それは可能ですか?

4

3 に答える 3

5

他の場所で使用するには、次のように関数から配列を返す必要があります。

public static Car[] GetCar()
    {
        var car = new Car[4];
        for(int i=0; i<4; ++i)
        {
            car[i]= new Novica();
            car[i].a="abc";
            car[i].b="abc";
            car[i].c="abc";
        }

        return car;
    }
于 2012-12-26T17:54:13.183 に答える
2

できません。あなたのメソッドは実際には何も返しません。

メソッドのシグネチャを変更して、メソッドが作成する配列を返す場合:

public static Car[] GetCar()
{
    // Body

    return car;
}

呼び出しは次のように単純になります。

var cars = Car.GetCar();
于 2012-12-26T17:53:58.340 に答える
0

少し変わった構造を提案します。すべての車を静的プロパティとして含む配列を提供します

public class Car
{
    public static Car[] AllCars { get; private set; }

    public Car()
    {
        // Class and constructor somewhat simplyfied.
        AllCars = new Car[4];
        for (int i = 0; i < 4; ++i) {
            AllCars[i] = new Novica();
        }
    }
}

今、あなたはこのような車で働くことができます

foreach (Car car in Car.AllCars) {
    // do something with car
}

または特定の車にアクセスする

string a = Car.AllCars[i].a;
于 2012-12-26T18:16:25.280 に答える