![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
リフレクションはどういったものですか?
プロパティ名・プロパティ値を取得して表示するのに必要不可欠な概念らしいですが、
現在は、↓のように代入しているか、Visual Studio 2005のプロパティ画面でGUI上で直接設定しています。
ボタン名.プロパティ名 = プロパティ値
GUI上で直接設定すると、ソースには表示されないので、プロパティの設定はこの3つだとどれで設定するのがいいですか?
1.Visual Studio 2005のプロパティ画面でGUI上で直接設定
2.ボタン名.プロパティ名 = プロパティ値
3.リフレクション
リフレクションってなんですか・・・
No.1ベストアンサー
- 回答日時:
・実行時に変更がないなら1.
・実行時に変更があるなら2.
がよいと思います。
1.であれば,多言語化対応もGUI上で可能です。
で,リフレクションというのは,「実行時の名前によるクラスやメンバ等へのアクセス手段」です。
あまり使われる物ではないですし,使うことを推奨はしませんが,
・クラスの生成
・メソッドの呼び出し
・フィールドやプロパティへの値の設定および値の呼び出し
・イベントへのハンドラの追加や削除
などができます。特に,先頭のクラスの生成を使うと,プラグイン機能を実装できます。
# .NET Framework 3.5ではSystem.AddInという便利なものがありますが。
なお,
Dim text1 As System.Windows.Forms.TextBox
という宣言があるとして,
text1.Text = "ABC"
をリフレクション使って書くと,
Dim text1Type As System.Type = text1.GetType()
Dim textProp As System.Reflection.PropertyInfo = text1Type.GetProperty("Text")
textProp.SetValue(text1, "ABC", Nothing)
のようになります。
・読みにくい
・重い
・実行時までエラー検出ができない
という問題点があるので,本当に必要な場合のみ使うことをお勧めします。
プラグインでも,作ったインスタンスをインターフェイスに押し込めてあとはリフレクションは使わないのが普通です。
MSDN: Type.GetProperty メソッド (String) (System)
http://msdn.microsoft.com/ja-jp/library/kz0a8sxy …
MSDN: PropertyInfo クラス (System.Reflection)
http://msdn.microsoft.com/ja-jp/library/system.r …
MSDN: PropertyInfo.SetValue メソッド (Object, Object, Object[]) (System.Reflection)
http://msdn.microsoft.com/ja-jp/library/xb5dd1f1 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SEO Googleアナリティクスでの設定について 1 2023/07/12 09:07
- C言語・C++・C# visual studio 2019 についての質問です 1 2022/09/21 09:58
- Visual Basic(VBA) ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:16
- IT・エンジニアリング ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:17
- ルーター・ネットワーク機器 デバイスマネージャー開いて、ネットワークアダプターからプロパティを開き、詳細設定のところの設定がいじ 3 2022/05/03 23:00
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- iOS デバイスマネージャーからネットワークアダプターに行き、自分の使用しているものを選択し、プロパティを押 1 2022/04/29 16:28
- マウス・キーボード マウス待ち砂時計または表示なしに変更 2 2022/09/19 09:58
- Excel(エクセル) Excelやワードなどのプロパティで タイトルとか設定できますが、どのような時に使いますか? 2 2022/11/29 18:36
- Word(ワード) word 文字数のずれ 2 2023/01/18 10:04
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
共通モジュールでDBへの接続と...
-
[VBA] Classから他のClassを呼...
-
VB.netで、動的な型変換を行い...
-
他のモジュールのプロシージャ...
-
WPFでCanvas の子要素にアクセ...
-
用語の意味の違いを教えてくだ...
-
Mapに登録した値を登録した順に...
-
Excel vbaで複数のテキストボッ...
-
worksheetFunctionクラスのVloo...
-
パソコンへの「Dropbox...
-
実行時エラー 438になった時の...
-
VBA シートのボタン名を変更し...
-
ユーザーフォームを表示中にシ...
-
VBA(エクセル)で自動的にボタン...
-
【C#/Java?】try-catchでcatch...
-
Form_Load と Form_Activate の...
-
vbaのエラー対応(実行時エラー...
-
Vba テキストボックス文字を右...
-
IF文に時間(何時から何時ま...
-
「Columns("A:C")」の列文字を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
共通モジュールでDBへの接続と...
-
[VBA] Classから他のClassを呼...
-
コンポーネント指向って、どの...
-
他のモジュールのプロシージャ...
-
用語の意味の違いを教えてくだ...
-
Excel vbaで複数のテキストボッ...
-
VB.netで、動的な型変換を行い...
-
VB.NETにて文字列で指定した関...
-
WPFでCanvas の子要素にアクセ...
-
VBAで、Functionを、クラスモジュール...
-
(初歩)インスタンス化の負担と...
-
Form2の変数をForm1に渡す方法...
-
バウンドプロパティとは?
-
VB ブラウザ
-
VB6で外部から静的アクセスが可...
-
Python クラスとモジュールの...
-
VBA オブジェクト追加
-
ExcelVBAでJavaのHashtableのよ...
-
'StructLayout' の仕様について
-
【JSF】バッキングビーンから別...
おすすめ情報