【问题标题】:C# - Property return a lenght arrayC# - 属性返回一个长度数组
【发布时间】:2016-05-16 10:51:58
【问题描述】:

我有三个班级:

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[] 的元素数

怎么办?

【问题讨论】:

  • Customer.Lenght 怎么样?

标签: c# arrays properties get set


【解决方案1】:

你的属性不应该有一个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,而无需自己手动跟踪它。数组知道它有多长。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-26
    • 2023-03-07
    • 1970-01-01
    • 2023-03-06
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    相关资源
    最近更新 更多