gpt4 book ai didi

C# 属性 - 设置问题

转载 作者:太空狗 更新时间:2023-10-29 18:00:40 24 4
gpt4 key购买 nike

我正在使用 C# 工作,并且开始使用属性。我不知道的一件事是什么是最好的方式/在哪里放置类属性的集合访问器的逻辑以及如何处理错误。

例如,假设我有这个(基础)类(class):

class Person
{
private int _Age = 18;

public Person()
{

}

public int Age
{
get
{
return _Age;
}
set
{
_Age = value;
}
}
}

现在假设我对 Age 属性有一个要求,0 < Age < 100。我应该把它的逻辑放在哪里?

我应该把它放在属性中吗?

public int Age
{
get
{
return _Age;
}
set
{
if (value < 0 || value > 99)
// handle error
else
_Age = Convert.ToInt32(value);
}
}

或通过正在创建 Person 对象的类?

static void Main(string[] args)
{
Person him = new Person();
int NewAge = -10;

if (NewAge < 0 || NewAge > 100)
// handle error
else
him.Age = NewAge;
}

现在如果 NewAge 有问题怎么办(它不符合我的约束条件)?我应该创建一个自定义异常并抛出它吗?我应该只打印一条消息说提供有效年龄吗?

我进行了一些谷歌搜索,但找不到任何可以完全回答我的问题的内容。我需要一本书 :-/

最佳答案

使用属性 setter ,它就是出于这个原因(向字段添加功能)。

如果传入超出范围的值,可以抛出ArgumentOutOfRangeException或者只是将其设置为最小(或最大)值,但这取决于您的工艺要求。

关于C# 属性 - 设置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/916159/

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