如何限制方法中的参数?

How to Limit a Parameter in a Method?

我有一个方法,我想将一个选项传递给它,但作为一个开关。我很难解释,所以我会包括 class:

class Special
{
int Var1;
int Var2;

public void Add1(int option, int variable)
{
    int ToReturn;        
    ToReturn = variable + 1;

    switch(option)
    {
        case 1:
            Var1 = ToReturn;
            break;
        case 2:
            Var2 = ToReturn;
            break;
    }
}
}

有什么方法可以将 option 的值限制为 1 或 2?我可以向 Add1 添加任何信息,以便在调用它时通知程序员它可能是哪些值,以及每个选项的作用吗?

我已经给出了一个示例 class,但是我的 class 包含更多可能适用的变量。

是:

public enum Option
{
    Option1,
    Option2
}

public void Add1(Option option, int variable)
{
    int ToReturn;        
    ToReturn = variable + 1;

    switch(option)
    {
        case Option1:
            Var1 = ToReturn;
            break;
        case Option2:
            Var2 = ToReturn;
            break;
    }
}

看起来您想使用枚举,基本上是静态定义值的占位符。

我可以想出多种方法来完成您的要求,但是如果我在您的场景中(前提是我正确理解了您的问题),我会使用枚举...

enum Options {
    Option1 = 1,
    Option2 = 2
}

class Special
{
int Var1;
int Var2;

public void Add1(Options option, int variable)
{
    int ToReturn;        
    ToReturn = variable + 1;

    switch(option)
    {
        case Options.Option1:
            Var1 = ToReturn;
            break;
        case Options.Option2:
            Var2 = ToReturn;
            break;
    }
}
}