如何强制构造函数的参数具有特定的值?在下面的例子中,我希望只有2-4个玩家。
当输入错误的_numOfPlayers值时,我希望有一个编译错误。另一种警告编码器不要以错误的方式使用构造函数的方法将受到欢迎。
public class Rules
{
public Rules(int _numOfPlayers)
{
numOfPlayers = _numOfPlayers;
}
public readonly int numOfPlayers;
}更复杂的情况:
public class Rules
{
public Rules(int _numOfPlayers, int _money)
{
numOfPlayers = _numOfPlayers;
money = _money;
}
public readonly int numOfPlayers;
public readonly int money;
}在这里,我只想有具体的组合:2名球员,2000元。2名球员,1000元。3名球员,700元。4人,500元。
我怎么能保证?
发布于 2017-10-21 23:41:04
在C#编译时,没有实际的方法来约束这样的类型。在您的示例中,我认为最好的方法是创建一个只具有有效值的枚举。如果您使用的是这些值以外的任何内容,那么您的代码就不会编译。
enum PlayerCount {Two = 2, Three, Four};那么您的构造函数将如下所示:
public Rules(PlayerCount count)
{
numOfPlayers = (int)count;
}https://stackoverflow.com/questions/46869144
复制相似问题