如何在数组中使用Getter setter

时间:2013-12-12 07:53:15

标签: c# arrays oop setter getter

我一直在c#中使用c ++和new。在c ++中,我使用int a[8]来声明一个数组,如果数组是一个对象,我们将值设置为item[0].SetID(5),这将把第一项ID的值设置为5.但我无法在C#。

namespace Arrays
{
    class items {
        public int ID { set; get; }
        public string name { set; get; }
        public items(int ID) {
            this.ID = ID;
            name = "Faizan";
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            var i=new items[4];
            i[0].ID=6;// this line is kind of c++ code but how I do it in c#
            Random r = new Random();
            for (int k = 0; k < 4; k++) {
                i[k] = new items(r.Next());
            }
            foreach(items it in i){
                Console.WriteLine("The item name {0} and the Id is {1}",it.name,it.ID);
            }

        }
    }
}

4 个答案:

答案 0 :(得分:3)

创建后,数组将填充默认值。 MSDN

  

如果在声明时没有初始化数组,那么   数组成员自动初始化为默认初始值   数组类型的值。

对于引用类型(即类),默认值为空。因此,您应该在访问之前初始化数组项

var i =new items[4];
// i[0] here is null

for (int k = 0; k < 4; k++) {
     i[k] = new items(r.Next()); // now i[0] points to object in memory
}

i[0].ID = 6;// now you can set object's property

答案 1 :(得分:1)

索引0处的项目为空。你需要这样做

i[0] = new items{ID = 6};

答案 2 :(得分:0)

  

i [0] .ID = 6; //这一行是c ++代码,但我是如何在c#

中完成的

你点上的数组为空。你在循环后初始化它。

所以

  • 首先使用值
  • 初始化数组
  • 访问/更改该数组中实例的属性

    之后
    static void Main(string[] args)
    {
    
        Random r = new Random();
        for (int k = 0; k < 4; k++) {
            i[k] = new items(r.Next());
        }
        foreach(items it in i){
            Console.WriteLine("The item name {0} and the Id is {1}",it.name,it.ID);
        }
    
        var i= items[4];
        i.ID=6;// NOW YOU CAN ACCCESS IT
    
        //OR SIMPLY 
        items[4].ID=6;
    
    }
    

答案 3 :(得分:0)

IN c ++当我们声明一个对象的数组时,它会自动初始化为NULL或“0”,我们可以在此之后得到或设置值(如果我错了,请纠正我)。那个c#怎么样? 我认为var i =新项目[4];这行也初始化了数组,是吗?