開発環境
- Microsoft Windows 7 Home Premium (OS)
- Microsoft Visual C# 2010 Express Edition (IDE)
- 言語: C#
独習C# 第3版 ハーバート・シルト (著) エディフィストラーニング株式会社 矢嶋聡 (監修, 翻訳) の第6章(Cメソッドとクラスの詳細)の理解度チェック8を解いてみる。
8.
refとoutはともに参照渡しであることは同じだけど、refキーワードの場合は初期化の必要があって、outキーワードの場合は初期化の必要がない。そのかわり、outキーバードの場合はメソッドが終了する前胃に、出力パラメータに値を代入しなければならない。
参照渡しであること、outキーワードの場合は変数の初期化の必要がないことを確認。
コード
using System;
class Tester
{
public void M1(ref int a, int b, int c)
{
a = b + c;
}
public void M2(out int a, int b, int c)
{
a = b * c;
}
public void M3(int a, int b, int c)
{
a = b + c;
}
public void M4(int a, int b, int c)
{
a = b * c;
}
public void Run()
{
int a1 = 10;
int a2;
int a3 = 0;
int a4 = 0;
int b = 10;
int c = 20;
M1(ref a1, b, c);
M2(out a2, b, c);
M3(a3, b, c);
M4(a4, b, c);
Console.WriteLine("{0},{1},{2},{3}",
a1, a2, a3, a4);
}
static void Main()
{
Tester t = new Tester();
t.Run();
}
}
入出力結果(Console Window)
30,200,0,0 続行するには何かキーを押してください . . .
0 コメント:
コメントを投稿