この人頭いいなと思ったエピソード

こんにちわ 

変数の動的な再定義というものが可能かどうかお伺いしたく質問させていただきました。

具体的には宣言時にはpublic int numberと宣言しておいて、プログラムのLoad時に、プログラム内でdouble型で宣言しなおすといった内容です。

※上記の内容は質問用のサンプルです。ジェネリックを使えばいいとかあると思いますがあくまで可能かどうかの質問です。

やりたいことは、プログラム実行時に型を決めて、コンパイルも通したいという内容です。
dynamicを使用すれば想定通りの動きのものはできましたが、別のやり方も模索しております。
プログラム内でなんとか再定義ができないものかと思ってます。

A 回答 (2件)

実行時に型を作ること自体は可能です。


が,作った型を使うことはリフレクションを山のように使うことになるので現実的ではないと思います。

・System.Reflection.Emit
http://msdn.microsoft.com/ja-jp/library/system.r …
直接にILを用いて型等を生成する方法。ILが分かるのであれば。
・System.CodeDom
http://msdn.microsoft.com/ja-jp/library/system.c …
Emitよりは上位の概念を利用して実行時に型等を生成する方法。
・Roslyn
http://roslyn.codeplex.com/
.NETで書かれたC#/VB等のコンパイラ。構文解析結果を取り出したりもできます。
    • good
    • 0

C#は静的型付けですのでできません。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報