Rui*_*ues 2 c# constructor properties class
public class Irritante : Child
{
/*Fields*/
private int ir_numeroBirras;
private double ir_mediaBirras;
/*Properties*/
public int NumeroBirras
{
get { return ir_numeroBirras; }
set { if (value > 0) ir_numeroBirras = value; }
}
public double MediaBirras
{
get { return ir_mediaBirras; }
set { ir_mediaBirras = value; }
}
//Constructor
public Irritante(string nome, int idade, int numBirras, double mediaDasBirras) : base(nome, idade)
{
NumeroBirras = numBirras;
ir_mediaBirras = mediaDasBirras;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用构造器Irritante与物业NumeroBirras它是忽略了,如果(值> 0) ,这意味着我仍然可以使用客户端的代码添加一个0到这个领域,我不应该是可以的,什么建议吗?我在任何地方都找不到
默认值ir_numeroBirras
是0
。你不能把一个0
using 属性。但是,如果您使用0
as 参数值进行测试,您就会被默认值所迷惑。
如果你在谈论你不应该在 Irritante ctor 的参数中放一个 0,那是完全不同的
public Irritante(string name, int idade, int numBirras, double mediaDasBirras) : base(nome, idade)
{
if(numBirras < 1) throw new ArgumentOutOfRangeException(nameof(numBirras), "Hey, you can't drink 0 beers");
ir_numeroBirras = numBirras;
ir_mediaBirras = mediaDasBirras;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
46 次 |
最近记录: |