1

我正在尝试通过公共属性访问器从类外部设置整数数组的私有字段。我几乎可以肯定问题是我缺乏完成这项工作的语法知识。如果我在通过对象访问属性时指定数组的索引,我已经想出了如何设置单个值。这是我到目前为止所拥有的。

下面是我的课。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace paramRefVal
{
    class ParamaterTest
    {
        private int[] _ints = new int[5];
        private int _i;

        public int[] Ints
        {
            get { return _ints; }
            set { _ints = value; }
        }

        public int I
        {
            get { return _i; }
            set { _i = value; }
        }

        public void SomeFunction(int[] Ints, int I)
        {
            Ints[0] = 100;
            I = 100;
        }
    }
}

这是我的主要方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace paramRefVal
{
    class Program
    {
        static void Main(string[] args)
        {
            ParamaterTest paramTest = new ParamaterTest();
            paramTest.I = 0;
            paramTest.Ints[0] = 99;
            Console.WriteLine("Ints[0] = {0}", paramTest.Ints[0]);
            Console.WriteLine("I = {0}", paramTest.I);
            Console.WriteLine("Calling SomeFunction...");
            paramTest.SomeFunction(paramTest.Ints, paramTest.I);
            Console.WriteLine("Ints[0] = {0}", paramTest.Ints[0]);
            Console.WriteLine("I = {0}", paramTest.I);
            Console.ReadLine();
        }
    }
}

我感兴趣的行是

paramTest.Ints[0] = 99;

我试图像这样设置多个值无济于事。

paramTest.Ints[] = { 0, 1, 2, 3, 4 };

我收到两个编译错误。“找不到类型或命名空间名称'paramTest'(您是否缺少 using 指令或程序集引用?)”没有引号。

其次。没有引号的“预期标识符”。

谢谢你的帮助!

4

1 回答 1

1

您可以使用:

paramTest.Ints = new int[] { 0, 1, 2, 3, 4 };

可以简化为:

paramTest.Ints = new[] { 0, 1, 2, 3, 4 };

如果你想使用数组初始化器,你可以这样做:

int[] ints = {0, 1, 2, 3, 4};
paramTest.Ints = ints;

不过,我没有收到任何关于该类型的编译错误。你可以再详细一点吗?

于 2013-01-06T05:48:55.523 回答