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应该知道它。