/// <summary> /// 引数変更メソッド_クラス /// </summary> /// <param name="var"></param> static void Change(RefTest var) { // 引数の値変更 var.obj = "B"; // 引数に新しいインスタンス設定 var = new RefTest(); // 新しいインスタンスに値を設定 var.obj = "C"; Console.WriteLine("クラス中:{0}", var.obj); }
static void Main(string[] args) { #region パターン01_クラス #if PATTERN01 // 参照型検証クラスのインスタンス生成 RefTest refTest = new RefTest(); // 検証メンバに値設定 refTest.obj = "A"; Console.WriteLine("クラス前:{0}", refTest.obj); // 引数変更メソッド_クラス使用 Change(refTest); Console.WriteLine("クラス後:{0}", refTest.obj); #endif #endregion #region パターン02_配列 #if PATTERN02 // 数値配列生成 int[] arr = new int[3] { 1, 2, 3 }; Console.WriteLine("配列前:{0}", arr[0]); // 引数変更メソッド_配列使用 Change(arr); Console.WriteLine("配列後:{0}", arr[0]); #endif #endregion #region パターン03_値型 #if PATTERN03 // 数値 int i = 1; Console.WriteLine("値型前:{0}", i.ToString()); // 引数変更メソッド_値型使用 Change(arr); Console.WriteLine("値型後:{0}", i.ToString()); #endif #endregion #region パターン04_文字列 #if PATTERN04 // 文字列 string str = "A"; Console.WriteLine("文字列前:{0}", str.ToString()); // 引数変更メソッド_文字列使用 Change(str); Console.WriteLine("文字列後:{0}", str.ToString()); #endif #endregion Console.ReadKey(); }