C#返回自定义类Array

时间:2012-12-26 17:51:28

标签: c# arrays class

我定义了一个自定义类:

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加载字符串)一起使用在不属于此类的函数中。是否可能,如果可能,怎么样?

3 个答案:

答案 0 :(得分: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;
    }

答案 1 :(得分:2)

你做不到。你的方法实际上没有返回任何东西。

如果您要更改方法签名以返回该方法创建的数组:

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

    return car;
}

电话会变得如此简单:

var cars = Car.GetCar();

答案 2 :(得分: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;