制作一个检查泛型类型的方法,然后进行相关的空值检查

时间:2013-11-26 22:48:47

标签: c#

我有一个方法用于更新数据库中的记录,它接受一些参数。这个方法在开始时调用另一种方法,根据传入的ID,通过不同的调用获取有关记录的更多信息。

我想要做的是(请看下面)调用UpdateTheRecord方法时,有第二个方法CheckValueOrElseGetProperty允许我传入一个对象返回类型(如字符串) ,int,等等),一个对象参数(如果满足if条件,则查找属性值,例如string.IsNullOrEmpty),以及用于指定属性的lambda表达式。

CheckValueOrElseGetProperty我可以使用typeof(T)来获取类型并执行检查。但我不确定如何使用三种泛型类型调用方法,以及如何指定属性选择表达式。

因此,为简洁起见,我们假设您有以下方法:

public static void UpdateTheRecord(Guid id) {
   MyObjectType myObject = GetFurtherInformation(id);

   // call generic method to check "property", 
   // pass in type to do checks, pass in MyObjectType and 
   // with a FUNC specify the property to use if the if condition is met
}

这是我遇到问题的地方:

public static T CheckValueOrElseGetProperty<T, TProperty, TReturnType> (Func<T, TProperty> propertySelector) {
     if (typeof(T) is string) {
            // pseudo code
            if (string.IsNullOrEmpty(T)
     }
}

0 个答案:

没有答案