面向对象的 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

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; }
    }