私はいくつかのデータを更新するために使用したいC#メソッドを持っています。この方法は、文字列、ダブル、私は私のテーブル内の特定のフィールド名を更新したいと思うFLDの値に応じて、整数可変数のパラメータを受け入れるためにC#関数をコーディングするにはどうすればよいですか?
public void Update(string ac, string pr, string fld, Int32 intVal = null, double dblVal = null, string strVal = null)
{
のいずれかを渡すことができます。
可能な値の種類の長いリストを指定する必要がないように、関数のパラメータをコード化する方法はありますか?
理想的には私はこのように、この関数を呼び出すことができるようにしたいと思います。そして、私が持っているしたい機能更新の内側
Update("key1", "key2", "location", "London");
Update("key1" , "key2", "beds", 2);
Update("key1" , "key2", "price", 123.45);
:XXXで
public void Update(string ac, string pr, xxx, yyy)
{
try
{
vm.Product = _product.Get(ac, pr);
vm.Product.xxx = yyy;
_product.AddOrUpdate(vm.Product);
}
catch (Exception e) { log(e); }
}
私はしたいと思いますフィールド名とyyyに実際の値を与えます。関数の中で、フィールド名に基づいたcaseメソッドを使って何らかのキャストを行うことができるかもしれません。私はフィールド名の数が少ないので、簡単にすることができます。また、vmクラスのリフレクトからデータ型を見つける方法があるかもしれませんが、それは私の知る限りではありません。
メソッド呼び出しのマニフェストの例をいくつか教えてください。 – BoltClock
文字列を渡して関数内でintまたはdouble(たとえばInt32.Parse(strVal))に変換できますか、場合によっては精度の問題を引き起こす可能性がありますか? – nycdan
ええ、私は常に文字列を渡すとうまくいくと思います。関数内では、必要なオブジェクト型に変換するだけで済みます。私はそれが良い方法だと思います。 –