C#で学ぶ out 修飾子の基本

この資料では、C#のout修飾子を使ってメソッドから値を返す方法を、シンプルな例で解説します。


1. 目的

out修飾子を利用すると、メソッド内で計算した値を呼び出し元に返すことができます。ここでは、渡された整数の2倍の値を計算して返すメソッドを例に、基本的な使い方を学びます。


2. サンプルコード

以下は、整数の2倍の値を返すサンプルコードです。
※ この例では、out修飾子を使って、メソッド内で計算した値を呼び出し元の変数に代入しています。

using System;

class Program
{
    static void Main()
    {
        // 計算結果を格納するための変数(初期化不要)
        int doubledValue;

        // 10の2倍の値を計算し、doubledValueに格納する
        DoubleValue(10, out doubledValue);

        Console.WriteLine("10の2倍の値は: " + doubledValue);
    }

    // 引数valueの2倍の値を計算して、outパラメータdoubledに結果を代入するメソッド
    static void DoubleValue(int value, out int doubled)
    {
        doubled = value * 2;
    }
}

C# 7.0以降では、outパラメータの変数を呼び出し時に直接宣言できます。以下のようにリファクタリングすることができます。

using System;

class Program
{
    static void Main()
    {
        // 10の2倍の値を計算し、doubledValueに格納する
        DoubleValue(10, out int doubledValue);

        Console.WriteLine("10の2倍の値は: " + doubledValue);
    }

    // 引数valueの2倍の値を計算して、outパラメータdoubledに結果を代入するメソッド
    static void DoubleValue(int value, out int doubled)
    {
        doubled = value * 2;
    }
}

このように書くと、変数の宣言と初期化が1行で済むため、コードがよりシンプルになります。


3. コードの解説

「out」は、メソッドから出力する(output)パラメータであることを示すためのキーワードです。
つまり、「out」は「出力」という意味合いで使われており、和訳で「外」という意味ではなく、メソッド内部で設定された値が呼び出し元に「返される」ことを表現しています。

3.1. out修飾子の概要

  • 役割
    out修飾子を使うと、メソッド内で計算または処理した値を呼び出し元に返すことができます。
  • 特徴
    呼び出し前に変数を初期化する必要はなく、メソッド内で必ず値を代入しなければなりません。

3.2. DoubleValueメソッドの説明

  • 機能
    渡された整数valueの2倍の値を計算し、その結果をoutパラメータdoubledに代入します。
  • パラメータ
    • value: 元の整数。
    • out int doubled: 計算結果(2倍の値)を返すためのパラメータ。
  • 動作
    メソッド内でdoubled = value * 2;と記述することで、計算結果が必ず代入されます。

3.3. Mainメソッドの動作

  • 処理の流れ
    • 変数doubledValueを宣言します(初期化は不要)。
    • DoubleValueメソッドを呼び出し、引数10の2倍の値をdoubledValueに代入します。
    • 計算結果をコンソールに出力します。

4. まとめ

この資料では、C#のout修飾子を用いた基本的な使い方をシンプルな例で学びました。

  • out修飾子を使うことで、メソッド内で計算した値を直接呼び出し元に返すことができます。
  • この例では、整数の2倍の値を計算し、outパラメータに結果を代入する方法を紹介しました。

この基本的なパターンを理解することで、より複雑なシナリオでもout修飾子を活用できるようになります。

C#

Posted by hidepon