1

パブリック プロパティ アクセサーを使用して、クラスの外部から int の配列のプライベート フィールドを設定しようとしています。問題は、これを行うための構文に関する知識が不足していることであるとほぼ確信しています。オブジェクトを介してプロパティにアクセスするときに配列のインデックスを指定すると、個々の値を設定する方法がわかりました。これが私がこれまでに持っているものです。

以下の私のクラス。

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

2 つのコンパイル エラーが発生します。「型または名前空間名 '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 に答える