Tag: CSharp/メタプログラミング

目次

参考情報

Type

typeofで取得

typeof(クラス)で取得できる。

typeof(Window)

GetTypeで取得

objectクラスのインスタンスメソッドGetType()で取得できる

Type type = obj.GetType()

オブジェクトを生成

Activator.CreateInstance(type)で可能。

Object o = Activator.CreateInstance(t);

プロパティの設定・取得

  • TypeからPropertyInfoをGetPropertyで取得し、PropertyInfoのSetValue(), GetValue()メソッドを使う。
  • PropertyInfoの機能を学習するためのテストのサンプルコード。
        public class Person
        {
            public string Name { get; set; }
        }
    
        [TestClass]
        public class PropertyInfoTest
        {
            [TestMethod]
            public void TestSetGet()
            {
                Person person = new Person() { Name = "中田英寿" };
                Assert.AreEqual("中田英寿", person.Name);
    
                Type type = typeof(Person);
                PropertyInfo pi = type.GetProperty("Name");
                pi.SetValue(person, "中村俊輔", null);
                Assert.AreEqual("中村俊輔", pi.GetValue(person, null));
                Assert.AreEqual("中村俊輔", person.Name);
            }
        }
    

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-04-13 (水) 16:48:09