C# Validate
时间: 2024-04-18 07:21:28 浏览: 17
以下是C#中参数验证的演示和介绍:
1. 使用自定义属性类进行参数验证[^2]:
在C#中,可以使用自定义属性类来进行参数验证。这些自定义属性类继承自ValidationAttribute抽象类,并且可以通过重写IsValid方法来实现参数验证。例如,可以使用StringLength属性类来验证字符串的长度是否符合要求。
```csharp
using System.ComponentModel.DataAnnotations;
public class Student
{
[StringLength(10, ErrorMessage = "Name length should be less than or equal to 10")]
public string Name { get; set; }
}
static void Main(string[] args)
{
Student student = new Student() { Name = "1234567891011" };
var validationContext = new ValidationContext(student, null, null);
var validationResults = new List<ValidationResult>();
bool isValid = Validator.TryValidateObject(student, validationContext, validationResults, true);
if (!isValid)
{
foreach (var validationResult in validationResults)
{
Console.WriteLine(validationResult.ErrorMessage);
}
}
Console.ReadKey();
}
```
2. 使用自定义方法进行参数验证[^1]:
除了使用自定义属性类进行参数验证外,还可以使用自定义方法来进行参数验证。例如,可以在Student类中定义一个Validate方法来验证参数的有效性。
```csharp
public class Student
{
public string Id { get; set; }
public string Name { get; set; }
public string Validate()
{
if (string.IsNullOrEmpty(Id))
{
return "Id is required";
}
if (string.IsNullOrEmpty(Name))
{
return "Name is required";
}
return null;
}
}
static void Main(string[] args)
{
Student student = new Student() { Id = null, Name = "1234567891011" };
string errorStr = student.Validate();
Console.WriteLine(errorStr);
Console.ReadKey();
}
```