C#.NET:struct

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
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。
添付ファイル