fork download
  1. using System;
  2.  
  3. class Test
  4. {
  5. int value;
  6.  
  7. Test(int value) {
  8. this.value = value;
  9. }
  10.  
  11. static void call_by_value(int x, Test y) {
  12. x = 3; // 呼出し元に影響しない
  13. y.value = 4; // 呼出し元に影響する
  14. y = new Test(5); // 呼出し元に影響しない
  15. }
  16.  
  17. static void call_by_reference(ref int x, ref Test y) {
  18. x = 6; // 呼出し元に影響する
  19. y.value = 7; // 呼出し元に影響する
  20. y = new Test(8); // 呼出し元に影響する
  21. }
  22.  
  23. static void Main() {
  24. int value = 1; // intは値型変数
  25. Test test = new Test(2); // オブジェクトは参照型変数
  26. call_by_value(value, test); // 値型変数の値渡し、参照型変数の値渡し
  27. Console.WriteLine("{0} {1}", value, test.value); // 1 4
  28. call_by_reference(ref value, ref test); // 値型変数の参照渡し、参照型変数の参照渡し
  29. Console.WriteLine("{0} {1}", value, test.value); // 6 8
  30. }
  31. }
Success #stdin #stdout 0.05s 26540KB
stdin
Standard input is empty
stdout
1 4
6 8