質問

想定は、次のコードな ref キーワードに、それはもちろんなの変数に渡され、"表現として渡された値です。

class ProgramInt
{
    public static void Test(int i) // Pass by Value
    {
        i = 2; // Working on copy.
    }

    static void Main(string[] args)
    {
        int i = 1;
        ProgramInt.Test(i);
        Console.WriteLine(i);
        Console.Read();

        // Output: 1
    }
}

現在はその機能として期待、追加の ref キーワード:

class ProgramIntRef
{
    public static void Test(ref int i) // Pass by Reference
    {
        i = 2; // Working on reference.
    }

    static void Main(string[] args)
    {
        int i = 1;
        ProgramInt.Test(ref i);
        Console.WriteLine(i);
        Console.Read();

        // Output: 2
    }
}

現地に行ってperplex理由としては、配列員が渡された機能を暗黙的に参照によって渡される。な配列で値のか。

class ProgramIntArray
{
    public static void Test(int[] ia) // Pass by Value
    {
        ia[0] = 2; // Working as reference?
    }

    static void Main(string[] args)
    {
        int[] test = new int[] { 1 };
        ProgramIntArray.Test(test);
        Console.WriteLine(test[0]);
        Console.Read();

        // Output: 2
    }
}
役に立ちましたか?

解決

いいえ、配列は、それらが参照型である意味し、クラスです。

他のヒント

配列は参照によって渡されていません。配列への参照は、値によって渡されます。この意味アレイ変更する必要なら渡された配列変数ポイントに(例えば、配列のサイズを変更する)、変数は参照によって渡されなければならない。

めの良い方法でこれを認識してください:

  • "参考"による 別名変数
  • 配列である 収集の変数;各要素は可変となります。

き配列が正常にすぐ 集変数.は、変数コレクションには変わりません。

き配列との"関係していることから、こうしたしま を新しい名前の変数を含む配列.

きる配列要素を正常にすぐ の値を変数.

きる配列要素-可変との"関係していることから、こうした、 を新しい名前と変数.

しょう?

あなたは値によって200万要素の配列を渡す想像できますか?今、要素型がdecimalであることを想像してみてください。あなたは、<ストライキ> 240メガバイトデータの30.5175781メガバイトの周りにコピーする必要があります。

scroll top