显示结束函数警告的匿名函数



我正在尝试FluentValidation,并且正在将C#规则集示例转换为 VB.NET。

问题:为什么VS 2019将绿色波浪线放在End Function下,说明该函数不会在所有代码路径上返回值。我是否应该在匿名函数中执行更多操作来删除此警告?就这么忽略了?

下面是原始的 C# 示例:

public class PersonValidator : AbstractValidator<Person> {
public PersonValidator() {
RuleSet("Names", () => {
RuleFor(x => x.Surname).NotNull();
RuleFor(x => x.Forename).NotNull();
});
}
}

这是我在 VB.NET 中的转换和应用,以及我自己的类ContractDTO

Public Class ContractValidator
Inherits AbstractValidator(Of ContractDTO)
Public Sub New()
RuleSet("OnCreate",
Function()
RuleFor(Function(x) x.CustomerID).NotEmpty
End Function ' Green squiggly line warning here.
)
End Sub
End Class

编辑:请注意,Visual Studio中的"显示潜在修复"不显示任何内容。

函数需要返回一个值。您的没有,因此,您应该改用Sub/End Sub

Public Class ContractValidator
Inherits AbstractValidator(Of ContractDTO)
Public Sub New()
RuleSet("OnCreate",
Sub()
RuleFor(Function(x) x.CustomerID).NotEmpty
' Add more lines.
End Sub)
End Sub
End Class

如果你不需要在你的sub内部有更多的线条,你可以像这样去掉End Sub部分:

RuleSet("OnCreate", Sub() RuleFor(Function(x) x.CustomerID).NotEmpty)

最新更新