#author("2018-02-26T08:14:21+00:00","default:admin","admin") #author("2018-09-13T07:44:33+00:00","default:admin","admin") -[[[完全版]C# 実践ダイナミックプログラミング:http://gihyo.jp/book/2011/978-4-7741-4833-5]] -[[動的型付け言語 C#:https://qiita.com/hiki_neet_p/items/481c6ea3fae312428f9c]] -[[C#での動的プログラミング:https://tocsworld.wordpress.com/2014/05/29/c%E3%81%A7%E3%81%AE%E5%8B%95%E7%9A%84%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/]] -[[Object vs Dynamic vs Var and ExpandoObject:http://www.c-sharpcorner.com/UploadFile/ca6c61/object-vs-dynamic-vs-var-and-expandoobject/]] -[[C#での動的なメソッド選択における定形高速化パターン:http://neue.cc/2014/01/27_446.html]] *リフレクション [#qe9798d2] -[[リフレクション (C#):https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/reflection]] -[[リフレクション:http://smdn.jp/programming/netfx/reflection/]] -[[リフレクションを使用してジェネリック型をチェックおよびインスタンス化する:https://msdn.microsoft.com/ja-jp/library/b8ytshk6(v=vs.110).aspx]] -[[c#のリフレクション:https://qiita.com/dolls/items/c7b3cf2520baae158a3a]] -[[ [動的な処理] 実行時型情報:http://ufcpp.net/study/csharp/sp_reflection.html]] -[[[C#][dynamic] リフレクション Q&A:http://blog.shos.info/archives/2013/07/csharp_reflectionqa.html]] -[[なぜリフレクションは遅いのか:http://postd.cc/why-is-reflection-slow/]] -[[リフレクション (Reflection) を活用する:https://code.msdn.microsoft.com/windowsdesktop/16-Reflection-83fc4215]] -[[ジェネリックメソッドをリフレクションで取得する方法 (System.Reflection, MethodInfo, MakeGenericMethod, IsGenericMethod, IsGenericMethodDefinition):http://devlights.hatenablog.com/entry/20081107/p2]] -[[Dynamically Invoke Generic Methods:https://www.codeproject.com/Articles/22615/Dynamically-Invoke-Generic-Methods]] *リフレクションによるメンバの順番 [#b08747cf] -[[[C#]リフレクションによるメンバの列挙順を指定する:http://oita.oika.me/2013/04/30/reflection_order/]] -[[プロパティをソートして出力する:https://qiita.com/KeisukeKudo/items/a03f8c553d6ef7d49102]] *dynamic [#jd00d67d] -[[dynamicで、あれ?って思うこと:http://ishikawa-tatsuya.hatenablog.com/entry/2015/05/16/121340]] -[[C# で dynamic 使ってたら謎なエラーに遭遇:http://var.blog.jp/archives/45816250.html]] -[[対策 "ラムダ式を最初にデリゲート型または式ツリー型にキャストせずに、動的にディスパッチされる操作の引数として使用することはできません":https://qiita.com/otagaisama-1/items/888fd9826aa7f0d23031]] **概要 [#u57b99af] -dynamic型は実行時に型を解釈する -dynamic型のオブジェクトは存在しないが、dynamic型の変数はありえる -コンパイル時に定義を知らないオブジェクトが持つ情報にアクセスできる -名前さえ一致していれば、どのクラスの定義にも、あるいは定義がなくてもアクセスできる -匿名型の使い勝手が向上する -動的言語(Pythonなど)との相互運用に便利である -つづりの間違いは実行するまでエラーにならない -定義不要で扱えるためソースは短くなるが、性能面では静的な定義に劣る *DynamicObject [#xc1e85f5] -[[DynamicObject クラス:https://msdn.microsoft.com/ja-jp/library/system.dynamic.dynamicobject(v=vs.110).aspx]] -[[連載! とことん C#: 第 30 回 DynamicObject から継承した独自の dynamic クラス:https://code.msdn.microsoft.com/windowsdesktop/30-DynamicObject-dynamic-8d1ff1e4]] -[[チュートリアル: 動的オブジェクトの作成と使用 (C# および Visual Basic):https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/types/walkthrough-creating-and-using-dynamic-objects]] -[[[C#][dynamic] DynamicObject を使ってみよう:http://blog.shos.info/archives/2012/12/csharp_dynamic1.html]] -[[第7回 DynamicObjectを継承したダイナミックなクラス:http://www.atmarkit.co.jp/fdotnet/csharp4/csharp4_07/csharp4_07_02.html]] -[[C# DynamicObjectの基本と細かい部分について:http://neue.cc/2010/05/06_257.html]] -[[Dynamic Object – Reading properties of an object in C#:http://blog.monjin.com/candidate/dynamic-object-reading-properties-of-an-object-in-c/]] *ExpandoObject [#le541097] -[[ExpandoObject クラス:https://msdn.microsoft.com/ja-jp/library/system.dynamic.expandoobject(v=vs.110).aspx]] -[[連載! とことん C#: 第 31 回 ExpandoObject を使用したアクション (メソッド) の実行時実装:https://code.msdn.microsoft.com/windowsdesktop/31-ExpandoObject-f551d861]] -[[第8回 ExpandoObjectを継承した動的拡張できるクラス:http://www.atmarkit.co.jp/fdotnet/csharp4/csharp4_08/csharp4_08_01.html]] -[[c# - ExpandoObjectの本当のメリットは何ですか?:https://code.i-harness.com/ja/q/193936]] -[[ExpandoObjectなんてものがあるんだ:http://blog.okazuki.jp/entry/20100808/1281239670]] -[[ExpandoObject を使ったデータ バインディング:https://sakapon.wordpress.com/2016/07/04/databinding-expandoobject/]]