面试题答案
一键面试在VB.NET中使用数据注解和特性验证可以借助System.ComponentModel.DataAnnotations
命名空间。以下是关键代码示例:
Imports System.ComponentModel.DataAnnotations
Public Class UserRegistration
<Required(ErrorMessage:="用户名是必需的")>
<StringLength(100, MinimumLength := 6, ErrorMessage:="用户名长度至少为6位")>
<RegularExpression("^[a-zA-Z0-9]+$", ErrorMessage:="用户名不能包含特殊字符")>
Public Property UserName As String
<Required(ErrorMessage:="密码是必需的")>
<StringLength(100, MinimumLength := 8, ErrorMessage:="密码长度至少为8位")>
<RegularExpression("^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+$", ErrorMessage:="密码必须包含大小写字母和数字")>
Public Property Password As String
End Class
在控制器或业务逻辑中验证:
Dim user As New UserRegistration()
user.UserName = "testuser"
user.Password = "Test1234"
Dim context As New ValidationContext(user, Nothing, Nothing)
Dim results As New List(Of ValidationResult)
Dim isValid = Validator.TryValidateObject(user, context, results, True)
If Not isValid Then
For Each errorResult In results
Console.WriteLine(errorResult.ErrorMessage)
Next
End If