gpt4 book ai didi

c# - 创建类验证代码或创建验证类?

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:09 26 4
gpt4 key购买 nike

这是我的第一篇文章,所以我提前为一些错误道歉,而且英语不是我的母语。什么更好,为什么?请记住,我正在与其他 2 个人一起工作,我们将有大约 4 个类来代表不同类型的人,每个类将有大约 15 个属性。

A - 为同一类内的类的每个属性创建验证:

public class People
{
string name { get; set; }

private void ValidateName()
{
if(this.name.Contains("0", ..., "9"))
throw new Exception("Name can't contain numbers.");
}
}

或 B - 创建一个类(也许是静态类?)仅用于验证:

public class People
{
string name { get; set; }
}

static class Validation
{
static void Name(string name)
{
if(name.Contains("0", ..., "9"))
throw new Exception("Name can't contain numbers.")
}
}

//and then somewhere in the code I call the Validation.Name(name) to verify if the code is ok.

还有第三种更合适的选择吗?我什至不知道使用异常是否可行。

提前致谢!

最佳答案

您可以使用您的方法在构造函数中实例化时抛出错误,如下所示

public class People
{
string name { get; set; }

public People(string n)
{
if (ValidateName(n))
{
this.name = n;
}
}

private bool ValidateName(string n)
{
char[] nums = "0123456789".ToCharArray();
if (n.IndexOfAny(nums) >= 0)
{
throw new Exception("Name can't contain numbers.");
}
return true;
}
}

使用上面的代码,下面会抛出异常。

People p = new People("x1asdf");

这将是一个成功的实例化

People p = new People("xasdf");

关于c# - 创建类验证代码或创建验证类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18337150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com