MST
星途 面试题库

面试题:Visual Basic 中数据注解在验证方面的基础应用

在 Visual Basic 中,假设有一个用户注册表单,需要验证用户名长度至少为6位且不能包含特殊字符,密码长度至少8位且必须包含大小写字母和数字。请使用数据注解和特性验证来实现这个功能,写出关键代码片段。
32.7万 热度难度
编程语言Visual Basic

知识考点

AI 面试

面试题答案

一键面试

在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