如何为数组数据成员定义get和set?
我正在创建一个具有以下数据成员和属性的类Customer
:
private string customerName; private double[] totalPurchasesLastThreeDays; //array of 3 elements that will hold the totals of how much the customer purchased for the past three days ie element[0] = 100, element[1] = 50, element[2] = 250 public string CustomerName { get { return customerName; } set { customerName = value; } } public double[] TotalPurchasesLastThreeDays { ? }
如何定义数组数据成员的get和set?
您可以使用自动属性:
public class Customer { public string CustomerName { get; set; } public double[] TotalPurchasesLastThreeDays { get; set; } }
或者如果你想:
public class Customer { private double[] totalPurchasesLastThreeDays; public string CustomerName { get; set; } public double[] TotalPurchasesLastThreeDays { get { return totalPurchasesLastThreeDays; } set { totalPurchasesLastThreeDays = value; } } }
然后在构造函数中,您可以设置一些默认值:
public Customer() { totalPurchasesLastThreeDays = new double[] { 100, 50, 250 }; }
你想要一个索引器吗?
public double this[int i] { get { return totalPurchasesLastThreeDays[i]; } set { totalPurchasesLastThreeDays[i] = value; } }
因为否则问题听起来有点奇怪,因为您已经在代码中实现了一个属性,并且显然能够这样做。
如果你想要从外面设置数组,最方便的是使用auto属性并删除你已经拥有的私有字段:
public double[] TotalPurchasesLastThreeDays { get; set; }
一种方法是这样的(我假设这一点是为了在设置后不再修改数组):
public double[] TotalPurchasesLastThreeDays { get { return totalPurchasesLastThreeDays; } set { totalPurchasesLastThreeDays = (double[])value.Clone(); } }
但是……你真的想这样做吗? 只做你通常做同样的事情可能会更方便和直观。
您可能会问自己这个问题,因为您认为分配给您的数组与常规变量不同?
在这种情况下,您必须意识到当您调用TotalPurchasesLastThreeDays[3] = 14.0
您实际上使用的是getter而不是setter。 setter用于更改数组本身,而不是它包含的值。 因此,对数组进行编码getter和setter与使用任何其他变量类型没有任何不同。
如果你想允许这个:
myCustomer.TotalPurchasesLastThreeDays[2] = 3.1415; var foo = myCustomer.TotalPurchasesLastThreeDays[1];
但不是这个:
myCustomer.TotalPurchasesLastThreeDays = new Customer[]{ ... };
仅定义getter,即:
public double[] TotalPurchasesLastThreeDays { get { return this.totalPurchasesLastThreeDays; } }
相反,如果您需要从类外部更改数组实例,只需按照其他答案操作即可。
上述就是C#学习教程:如何为数组数据成员定义get和set?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
public double[] TotalPurchasesLastThreeDays { get { return totalPurchasesLastThreeDays; } set { totalPurchasesLastThreeDays = value; } }
public double[] TotalPurchasesLastThreeDays { get { return totalPurchasesLastThreeDays; } set { totalPurchasesLastThreeDays=value; } }
public int this [int varialbeindex] { get { return totalpurchaseslastdays[index]; } set { totalpurchaseslastdays[index]=value; } }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/952910.html