在业余时间,我正在创建一个小型业务框架,可以将其重用于我的学校项目。我想这将类似于一个愚蠢的 CSLA,如果这可以给你一个想法。
不过,我在业务规则类方面遇到了一些麻烦。这是它现在的样子:
public class Rule
{
public string PropertyName { get; }
public string Description { get; }
public Func<object, bool> ValidationRule { get; }
public Rule(string propertyName, string message, Func<object, bool> validationRule)
{
this.PropertyName = propertyName;
this.Description = description;
this.ValidationRule = validationRule;
}
public bool IsBroken(object value)
{
return ValidationRule(value);
}
}
当我检查规则是否被破坏(值可以是任何类型)时,我不是我正在做的装箱和拆箱的忠实粉丝。
当然,我可以使整个类通用,并让我的 IsBroken 函数采用 T 类型的对象(无论如何可能比使用对象更好),但我想知道是否可以做类似以下的事情:
public class Rule
{
public Func<T, bool> ValidationRule { get; }
public bool IsBroken<T>(T value)
{
return ValidationRule(value);
}
}
没有用泛型类型声明类?
欢迎任何其他提示。