using System.Windows;
namespace WpfApp
{
/// <summary>
/// MainWindow.xaml の相互作用ロジック
/// </summary>
public partial class MainWindow : Window
{
/// <summary>
/// コンストラクタ
/// </summary>
public MainWindow()
{
// コンポーネントの初期化
InitializeComponent();
TestClass testClass1 = new TestClass();
testClass1.Val = "WOW";
TestClass testClass2 = testClass1;
testClass2.Val = "NON";
// classはアドレスをコピーして代入が行われる
// そのため、testClass1とtestClass2は同一のインスタンスを指すことになるため
// testClass2の参照先のインスタンスの値を変更すれば
// 当然testClass1の参照先のインスタンスの値は変更されている
MessageBox.Show(string.Format("testClass1.Val={0}\ntestClass2.Val={1}", testClass1.Val, testClass2.Val));
TestStruct testStruct1 = new TestStruct();
testStruct1.Val = "WOW";
TestStruct testStruct2 = testStruct1;
testStruct2.Val = "NON";
// structは値をコピーして代入が行われる
// そのため、testStruct1とtestStruct2は別々の値を指すことになるため
// testStruct2の値を変更しても
// 当然testStruct1の値には影響しない
MessageBox.Show(string.Format("testStruct1.Val={0}\ntestStruct2.Val={1}", testStruct1.Val, testStruct2.Val));
}
/// <summary>
/// 構造体
/// </summary>
struct TestStruct
{
public string Val { get; set; }
}
/// <summary>
/// クラス
/// </summary>
class TestClass
{
public string Val { get; set; }
}
}
}
最終更新:2014年01月31日 23:39