C# - Property返回一个长度数组

时间:2016-05-16 10:51:59

标签: c# arrays properties get set

我有三节课:

public class Customer
{
    public string FirstName { get; set; }

    public string LastName { get; set; }
};

public class count
{
    public int number
    {
        get
        {
            return 1;
        }
        set
        {
        }
    }
}

public class myclass
{
    public Customer[] Customer { get; set; }

    public count number { get; set; }
}

还有一个例子:

myclass myclass = new myclass()
{
    Customer = new Customer[]
    {
        new Customer()
        {
            FirstName = "FirstName1",
            LastName = "LastName1"
        },
        new Customer()
        {
            FirstName = "FirstName2",
            LastName = "LastName2"
        }
    },
    number = new count()
};

我想要属性count.number返回我的数组Customer []中的客户数。

我必须有一个不同的类来获取我的数组Customer []

的元素数量

怎么办?

的Th

1 个答案:

答案 0 :(得分:2)

你的属性不应该有一个setter,它应该只是动态地返回数组的长度。像这样:

public class myclass
{
    public Customer[] Customer { get; set; }

    public int number
    {
        get { return Customer.Length; }
    }
}

然后您不必手动设置它(或者更重要的是,手动在数组更改时保持同步)。

如果你必须将一个整数包装在一个类中(你真的不应该需要,但无论如何),那么只返回该类的一个实例:

public class myclass
{
    public Customer[] Customer { get; set; }

    public count number
    {
        get { return new count { number = Customer.Length; } }
    }
}

但是你构造它(也就是说,无论你在类中包装原始值的原因),重点是你可以动态获取数组的.Length而无需手动跟踪它你自己。数组知道它有多长。