面向对象的getter和setter?

时间:2013-09-17 07:50:46

标签: c# oop

我在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方法时,它只返回零值。我疯了,无法理解我的问题是什么!

6 个答案:

答案 0 :(得分:4)

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

访问它

答案 1 :(得分:1)

对我来说工作正常: -

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

正如其他人写的那样,你的代码不像C#,但你的问题不是由此引起的。

由于您未提供任何客户端代码,因此我只能假设它取决于您在设置获取之间的客户端代码中执行的其他任务。

尝试检查一下。

答案 4 :(得分:-1)

嘿,请检查以下代码并尝试:

    int[] pizzano = {1,2,3,4,5,6};
    Order order = new Order();
    order.setPizzaNo(pizzano);
    int[] getvalues = order.getPizzano(); 
    System.out.println(getvalues[1]);

答案 5 :(得分:-1)

pizzano是私有的,你不能用简单的方法返回私人成员。

您需要使用get和set

private int[] pizzano;
    public int[] PizzaNo 
    {
        get { return (pizzano); }
        set { pizzano = value; }
    }