キャストについて – プログラミング – Home

通知
すべてクリア

キャストについて


clearance
 clearance
(@clearance)
ゲスト
結合: 15年前
投稿: 1
Topic starter  

お世話になります。
WinXP Pro SP3, VS 2008 SP1, C#です。

C#でのキャストについて質問があります。

とある理由から、型名をstring型変数に持っています
(仮にstring typeName = System.Windows.Forms.Formとします)

そして、任意のタイミングでobject型のインスタンス
(仮にobject objControlとします)を上記のstring型の
変数に持っている型名に動的にキャストするには
どうしたらいいのでしょうか。
(objControl as System.Windows.Forms.Form
と同等のことをしたいです)

初歩的な質問かもしれませんが
教えてください。


引用解決済
トピックタグ
YuO
 YuO
(@YuO)
ゲスト
結合: 21年前
投稿: 320
 

できません。

そもそも,キャストしてどうしたいのでしょうか。

基本的に,C#ではコンパイル時に静的型が決定している必要があります。
つまり,仮にキャストできたとしても,その静的型はSystem.Objectから変化しません。
そのため,呼び出せるのはSystem.Objectのメンバのみとなります。

遅延バインドさせたいのであれば,リフレクションを使うか,式木を使ってください。
どちらにしても,文字列からSystem.Typeを作っておく必要があります。
# System.Type.GetTypeとかSystem.Reflection.Assembly.GetTypeとか。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました