【发布时间】:2015-04-28 12:11:38
【问题描述】:
我在使用 Fluent Validation Must 子句时注意到了一个非常奇怪的问题。
假设我有这样的模型:
public class PhoneDetail
{
public int PrefixId { get; set; }
public string Digits { get; set; }
}
这里是验证器:
public PhoneDetailValidator()
{
this.RuleFor(phone => phone.Digits)
.Must(x => x == null);
}
你认为x是什么类型的? String?是的,你是对的。
但是,那这是什么?
它的类型已从 string 更改为 PhoneDetail。
我正在使用 Visual Studio 2012。
是那个bug还是什么?
更新:
另外,值得一提的是,在第一种情况下它编译得很好。但是,在第二种情况下发生编译器错误:
> Delegate 'System.Func<SportsStore.WebUI.Models.PhoneDetail,string,bool>'
> does not take 1 arguments
【问题讨论】:
-
它只显示包含实例类型的名称(
PhoneDetails)。 -
对我来说看起来像一个 IDE 错误。事实上,我刚刚尝试了相同的代码,它显示
string。 -
@DavidG 可能是,我使用的是 Visual Studio 2012。
-
@FarhadJabiyev 我没有 2012 年可供测试,但我怀疑如果您关闭 IDE 并重新打开它就可以了。
-
@DavidG 我已关闭并重新打开它。还是一样。此外,我们也在我朋友的电脑上对此进行了测试。结果相同。
标签: c# .net visual-studio visual-studio-2012 lambda