1

string何かをまたはboolまたはdateなどに変換したいと明示的に言う複数の行があります。

変換したいオブジェクトを渡し、また取得したいものを渡すメソッド内に何らかの形でカプセル化することは可能ですか?

私が今持っているもの

foreach (var item in archive.Items)
{
    var newItem = new Item();
    newItem.Notes = Convert.ToString(item.FirstOrDefault(x => x.Key == "notes").Value);
    newItem.IsPublic = Convert.ToBoolean(item.FirstOrDefault(x => x.Key == "ispublic").Value);
}

欲しいもの(疑似)

foreach (var item in archive.Items)
{
    var newItem = new Item();
    newItem.Notes = GetValue("notes", string)
    newItem.IsPublic = GetValue("ispublic", bool)
}

// ...

public T GetValue(string key, T type)
{
    return object.FirstOrDefault(x => x.Key == key).Value; // Convert this object to T and return?
}

このようなことは可能ですか?

4

2 に答える 2

5

一般的なラッパーを書きたいと思うでしょうConvert.ChangeType()

public T GetValue<T>(string key) {
    return (T)Convert.ChangeType(..., typeof(T));
}
于 2013-10-10T20:55:07.517 に答える