面向对象的 getter 和 setter
本文关键字:setter getter 面向对象的 | 更新日期: 2023-09-27 18:31:46
我用C#写了一个非常简单的代码,遇到了一个荒谬的问题!
我有一个类名顺序,并且声明了一个字段,例如:
private int[] pizzano = new int[8];
public void setPizzaNo(int[] pno)
{
pizzano = pno;
}
public int[] getPizzano()
{
return pizzano;
}
我得到一个对象并将其设置为另一个类,如下所示:
order order = new order();
order.setPizzaNo(pizzano);
pizzano
是一个整数数组,我为其分配了不同的值,但是当我使用 get
方法时,它只返回零值。我疯了,不明白我的问题是什么!
getter/setter 是用 c# 语言实现的。
private int[] m_iArrPizzano = new int[];
您可以通过执行以下操作来封装它:
public int[] Pizzano {
get {
return m_iArrPizzano;
}
set {
m_iArrPizzano = value;
}
}
但是,当您不想检查错误的集时,可以使用小版本而不声明私有字段。
public int[] Pizzano { get; set; }
将在构建时自动生成上述内容。
使用obj.Pizzano = new int[1] { 0 };
访问它
对我来说
工作正常:-
public class order
{
private int[] pizzano = new int[8];
public void setPizzaNo(int[] pno)
{
pizzano = pno;
}
public int[] getPizzano()
{
return pizzano;
}
}
class Program
{
static void Main(string[] args)
{
int[] pizzano = { 0, 1, 2, 3, 4, 5, 6, 7 };
order order = new order();
order.setPizzaNo(pizzano);
foreach (var item in order.getPizzano())
{
Console.WriteLine(item);
}
}
}
private int[] pizzano;
public void setPizzaNo(int[] pno)
{
pizzano = pno;
}
public int[] getPizzano()
{
return pizzano;
}
public static void Main(String[] args)
{
Order order = new Order();
int[] pizzano = {1,2,3,4,5};
int[] test;
order.setPizzaNo(pizzano};
test = order.getPizzano();
for(int i=0; i<test.Length; i++)
{
Console.WriteLine(test[i]);
}
正如其他人所写,你的代码不像C#,但你的问题不是由这个引起的。
因为您不提供任何客户端代码,所以我只能假设它取决于您在集合和 get 之间的客户端代码中执行的其他一些赋值。
尝试检查一下。
嘿,检查以下代码并尝试:
int[] pizzano = {1,2,3,4,5,6};
Order order = new Order();
order.setPizzaNo(pizzano);
int[] getvalues = order.getPizzano();
System.out.println(getvalues[1]);
pizzano 是私有的,您不能使用简单的方法返回私有成员。
您需要使用 get 和 set
private int[] pizzano;
public int[] PizzaNo
{
get { return (pizzano); }
set { pizzano = value; }
}