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 回答