[解決済み] 文字列名によるクラスプロパティの設定/取得 [重複]。
2023-03-02 02:46:23
質問
私がやろうとしていることは、文字列を使用してクラスのプロパティの値を設定することです。 例えば、私のクラスには以下のようなプロパティがあります。
myClass.Name
myClass.Address
myClass.PhoneNumber
myClass.FaxNumber
すべてのフィールドは
string
型なので、常に文字列であることが事前に分かっています。 では、文字列を使ってプロパティを設定できるようにしたいと思います。
DataSet
オブジェクトと同じように、文字列を使ってプロパティを設定できるようにしたいのです。 このようなものです。
myClass["Name"] = "John"
myClass["Address"] = "1112 River St., Boulder, CO"
理想は、変数を代入して、その変数からその文字列名を使ってプロパティを設定することです。
string propName = "Name"
myClass[propName] = "John"
私はリフレクションについて読んでいて、多分それはそれを行うための方法ですが、私はクラスのプロパティアクセスをそのまま維持しながら、それを設定するためにどのように行くのかがわかりません。 私はまだ使用することができるようにしたいです。
myClass.Name = "John"
どんなコード例でも本当に素晴らしいです。
どのように解決するのですか?
インデクサープロパティである 疑似コード :
public class MyClass
{
public object this[string propertyName]
{
get
{
// probably faster without reflection:
// like: return Properties.Settings.Default.PropertyValues[propertyName]
// instead of the following
Type myType = typeof(MyClass);
PropertyInfo myPropInfo = myType.GetProperty(propertyName);
return myPropInfo.GetValue(this, null);
}
set
{
Type myType = typeof(MyClass);
PropertyInfo myPropInfo = myType.GetProperty(propertyName);
myPropInfo.SetValue(this, value, null);
}
}
}
関連
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】「namespace」なのに「type」のように使われる。
-
[解決済み] リフレクションを使用して文字列からプロパティ値を取得する
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaScriptでオブジェクトのキー/プロパティの数を効率的にカウントする方法
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] Java のメソッド名を文字列で指定した場合、どのように呼び出すのですか?
-
[解決済み] C#が独自のクラス名を取得する
-
[解決済み】Reflection - プロパティで属性名と値を取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み】リソースの読み込みに失敗した:ステータス500(内部サーバーエラー)のサーバーの応答)
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】Visual studio 2019がデバッグ時にフリーズする件
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み] リフレクションを使用して文字列からプロパティ値を取得する
-
[解決済み] 文字列値によるリフレクションでプロパティを設定する