C# 是否可以对C中的几个方法应用限制#

C# 是否可以对C中的几个方法应用限制#,c#,restrictions,C#,Restrictions,我有一个脚本如下: Int MethodOne (int param) { If (param > 5) { Return 0; } Return param; } Int MethodTwo (int param) { If (param > 5) { Return 0; } Return param * anotherVariable; } 是否可以将条件“如果param>5,则不应执行方法”应用

我有一个脚本如下:

Int MethodOne (int param) {
    If (param > 5) {
        Return 0;
    }
    Return param;
}

Int MethodTwo (int param) {
    If (param > 5) {
        Return 0;
    }
    Return param * anotherVariable;
}

是否可以将条件“如果param>5,则不应执行方法”应用于我的所有方法,而不在每个方法中重写它?

我不知道如何执行OP提出的问题,因此这里是我能想到的最佳答案。一种方法是创建另一个
Restriction()
方法,这样您就可以更改它一次,而不是每次都更改

bool Restriction(int param)
{
    return param <= 5;
}

int MethodOne(int param)
{
    return Restriction(param) ? param : 0;
}

int MethodTwo(int param) 
{
    return Restriction(param) ? param * anotherVariable : 0;
}
bool限制(int参数)
{

return param我不知道如何做OP所要求的事情,所以这里是我能想到的最好的答案。一种方法是创建另一个
Restriction()
方法,这样您可以更改它一次,而不是在每个方法中

bool Restriction(int param)
{
    return param <= 5;
}

int MethodOne(int param)
{
    return Restriction(param) ? param : 0;
}

int MethodTwo(int param) 
{
    return Restriction(param) ? param * anotherVariable : 0;
}
bool限制(int参数)
{
return param您可以使用函数

Func<int,int> restrict = x => x <= 5 ? x : 0;

int MethodOne (int param) {
    return restrict(param);
}
int MethodTwo (int param) {
    return restrict(param) * anotherVariable;
}
//...
Func restrict=x=>x您可以使用函数

Func<int,int> restrict = x => x <= 5 ? x : 0;

int MethodOne (int param) {
    return restrict(param);
}
int MethodTwo (int param) {
    return restrict(param) * anotherVariable;
}
//...

Func restrict=x=>x一种方法是不传递int(请参阅)

现在


一种方法是不传递int(请参阅)

现在


不要编写多个方法,只需编写一个方法,该方法使用一个参数来决定需要调用哪个功能,并将您的条件放在该方法的顶部:

Int MethodOne (int func, int param) {
    If (param > 5) {
        Return 0;
    }

    switch(func)
    {
        case 1: Return param; break;
        case 2: Return param * anotherVariable; break;
        ...
    }
}

不要编写多个方法,只需编写一个方法,该方法使用一个参数来决定需要调用哪个功能,并将您的条件放在该方法的顶部:

Int MethodOne (int func, int param) {
    If (param > 5) {
        Return 0;
    }

    switch(func)
    {
        case 1: Return param; break;
        case 2: Return param * anotherVariable; break;
        ...
    }
}

这是如何满足条件而不在每个方法中重写的?嗯,它不是。但是我不知道怎么做OP所要求的,所以我试着给出我能想到的最好的答案。我同意你的观点,但是你的评论应该添加在你的回答的开头,这是如何满足条件而不在每个方法中重写的ethod?嗯,不是。但是我不知道怎么做OP问的,所以我试着给出我能想到的最好的答案。我同意你的观点,但是你的评论应该添加在你的回答的开头。我只是想知道在这种情况下是否有可能避免代码重复UpVoting,因为人们没有对hel发表评论就投了反对票p用户改进问题我只是想知道在这种情况下是否有可能避免代码重复UpVoting,因为人们在没有评论的情况下进行向下投票,以帮助用户改进问题
int MethodThree(int param){return anotherVariable/restrict(param);}
将严重崩溃。@ArthurRey当您尝试除以
0
时,它将崩溃。OP应该知道它。
int MethodThree(int param){返回另一个变量/restrict(param);}
将严重崩溃。@ArthurRey当您尝试除以
0
时,它将崩溃。OP应该知道它。