C#のリフレクションを使用して文字列値で異なるデータ型を持つプロパティを設定するにはどうすればよいですか?
リフレクションとは、マネージコードが独自のメタデータを読み取ってアセンブリを見つけることができる場合です。基本的に、コードは同じシステム内の他のコードを検査できます。 C#のリフレクションを使用すると、型のインスタンスを動的に作成し、その型を既存のオブジェクトにバインドできます。さらに、既存のオブジェクトとaccessitsプロパティから型を取得できます。コードで属性を使用すると、モジュール、アセンブリ、および型を記述するTypeのオブジェクトが提供されるため、リフレクションによってアクセスが可能になります。
double型のプロパティがあり、実行時に実際に文字列として値があり、型を変更した後にプロパティに割り当てたとします。 Convert.ChangeType()を使用できます -これにより、任意のIConvertibleタイプのランタイム情報を使用して、表現形式を変更できます。
例
using System; using System.Reflection; namespace DemoApplication{ class Program{ static void Main(){ Circle circle = new Circle(); string value = "6.5"; PropertyInfo propertyInfo = circle.GetType().GetProperty("Radius"); propertyInfo.SetValue(circle, Convert.ChangeType(value, propertyInfo.PropertyType), null); var radius = circle.GetType().GetProperty("Radius").GetValue(circle, null); Console.WriteLine($"Radius: {radius}"); Console.ReadLine(); } } class Circle{ public double Radius { get; set; } } }
出力
Radius: 6.5
上記の例では、文字列値「6.5」がConvert.ChangeTypeを使用して実際のtypedoubleに変換され、reflectioninruntimeを使用してRadiusプロパティに割り当てられていることがわかります。
-
Tkinter Spinboxでデフォルトの文字列値を設定するにはどうすればよいですか?
Tkinter Spinboxにデフォルトの文字列値を設定するには、 setを使用する必要があります 方法。例を見て、文字列値のセットを使用してスピンボックスを作成し、デフォルトの文字列を設定する方法を見てみましょう。 ステップ- tkinterライブラリをインポートし、tkinterフレームのインスタンスを作成します。 ジオメトリを使用してフレームのサイズを設定します メソッド。 文字列のセットを作成し、変数 dataに保存します 。 次に、 StringVar()を使用します StringVarを作成するコンストラクター 物体。 Spingboxであるウィジェッ
-
Redis TYPE –キーに値ストアのデータ型を取得する方法
このチュートリアルでは、キーの値ストアのデータ型を取得する方法について学習します。 redisデータストアの値は、String、List、Set、Sorted Setなどのさまざまなデータ型にすることができます。値のデータ型を取得するには、COMMAND – TYPEを使用します。 redis-cliで。 redisTYPEコマンドの構文は次のとおりです:- 構文:- redis host:post> TYPE <key name> 出力:- - string representing data type of a value.- none, if key does