C#动态定值法

C#动态定值法,c#,c#-4.0,C#,C# 4.0,我有一个在列表中搜索关键字的方法: private static void Set<TTarget>(IList<Attributes> source, string key, TTarget target, Action<TTarget, string> setter) { if (source[0].Key == key) { var value = source.FirstOrDefault(); se

我有一个在列表中搜索关键字的方法:

private static void Set<TTarget>(IList<Attributes> source, string key, TTarget target, Action<TTarget, string> setter) { 

    if (source[0].Key == key)
    {
        var value = source.FirstOrDefault();
        setter(target, value.Value.ToString());
    }
} 

您可以实现一个简单的检查,以确保在调用setter方法之前填充了value变量:

private static void Set<TTarget>(IList<Attributes> source, string key, TTarget target, Action<TTarget, string> setter) { 

    if (source[0].Key == key)
    {
        var value = source.FirstOrDefault();

        if(value == null || value == ""){
            Console.WriteLine($"No value found for key {key}!");
        } else {
            setter(target, value.Value.ToString());
        }
    }
}
private static void Set(IList源、字符串键、TTarget目标、操作setter){
if(源[0]。键==键)
{
var value=source.FirstOrDefault();
如果(值==null | |值==“”){
WriteLine($“找不到键{key}的值!”);
}否则{
setter(target,value.value.ToString());
}
}
}
如果(value!=null){setter(…);}怎么样?
private static void Set<TTarget>(IList<Attributes> source, string key, TTarget target, Action<TTarget, string> setter) { 

    if (source[0].Key == key)
    {
        var value = source.FirstOrDefault();

        if(value == null || value == ""){
            Console.WriteLine($"No value found for key {key}!");
        } else {
            setter(target, value.Value.ToString());
        }
    }
}