C#作用为整数
谢谢大家我在Daniel Hilgarth的帮助下完成了我的产品计划 我不知道如何解释我想问的问题,所以我会尝试向你展示 我希望a是一个数字,比如说5 b是一个数字,例如3,M是一个动作 我想写一些这样的东西:C#作用为整数,c#,action,C#,Action,谢谢大家我在Daniel Hilgarth的帮助下完成了我的产品计划 我不知道如何解释我想问的问题,所以我会尝试向你展示 我希望a是一个数字,比如说5 b是一个数字,例如3,M是一个动作 我想写一些这样的东西: if(c == 6) { M = " * "; } if(c == 7) { M = "/"; } if( a M b == 15) { lable1.Text = " Hi"; } 程序显示如果c=6 M将是多点动作,a M b将是5*3=15 请帮我写
if(c == 6)
{
M = " * ";
}
if(c == 7)
{
M = "/";
}
if( a M b == 15)
{
lable1.Text = " Hi";
}
程序显示如果c=6
M将是多点动作,a M b将是5*3=15
请帮我写,因为我不知道怎么写
让我自我解释一下,我想要一个命令行,比如if(ambdnckd==25){lable1.Text=“hi”}和一个bcd是用“for”改变的数字,而mnk是也用“for”改变的数学运算字符串,每次程序检查ambdnckd==25…
Func M/*=null;??*/;
Func<int, int, int> M/* = null; ??*/;
switch (c)
{
case 6:
M = (i,j) => i*j;
break;
case 7:
M = (i,j) => i/j;
break;
}
int a = 5;
int b = 3;
if (15 == M(a,b))
lable1.Text = " Hi";
开关(c)
{
案例6:
M=(i,j)=>i*j;
打破
案例7:
M=(i,j)=>i/j;
打破
}
INTA=5;
int b=3;
如果(15==M(a,b))
标签1.Text=“Hi”;
您需要操作的默认初始化,我将留给您想象Func M/*=null;??*/;
开关(c)
{
案例6:
M=(i,j)=>i*j;
打破
案例7:
M=(i,j)=>i/j;
打破
}
INTA=5;
int b=3;
如果(15==M(a,b))
标签1.Text=“Hi”;
你需要一个动作的默认初始化,我会让你想象一下怎么样
int result;
if(c == 6)
{ result=a*b; }
else if(c == 7)
{ result = a/b}
if( result == 15) { lable1.Text = "Hi"; }
那怎么办
int result;
if(c == 6)
{ result=a*b; }
else if(c == 7)
{ result = a/b}
if( result == 15) { lable1.Text = "Hi"; }
你可以这样做:
Func<int, int, int> M = null;
if(c == 6)
{
M = (x, y) => x * y;
}
if(c == 7)
{
M = (x, y) => x / y;
}
if(M != null && M(a, b) == 15)
{
lable1.Text = " Hi";
}
Func M=null;
如果(c==6)
{
M=(x,y)=>x*y;
}
如果(c==7)
{
M=(x,y)=>x/y;
}
如果(M!=null&&M(a,b)==15)
{
标签1.Text=“Hi”;
}
更新后,情况会变得更复杂:
Func<int, int, int> M = null;
Func<int, int, int> N = null;
Func<int, int, int> K = null;
if(c == 6)
{
M = (x, y) => x * y;
}
if(c == 7)
{
M = (x, y) => x / y;
}
// Similar initialization if N and K
if(M == null || N == null || K == null)
return;
if(K(N(M(a, b), c), d) == 25)
{
lable1.Text = " Hi";
}
Func M=null;
Func N=null;
Func K=null;
如果(c==6)
{
M=(x,y)=>x*y;
}
如果(c==7)
{
M=(x,y)=>x/y;
}
//如果N和K,则进行类似的初始化
如果(M==null | | N==null | | K==null)
回来
如果(K(N(M(a,b),c),d)==25)
{
标签1.Text=“Hi”;
}
但这越来越荒谬了……我认为最好使用数学解析器。您可以这样做:
Func<int, int, int> M = null;
if(c == 6)
{
M = (x, y) => x * y;
}
if(c == 7)
{
M = (x, y) => x / y;
}
if(M != null && M(a, b) == 15)
{
lable1.Text = " Hi";
}
Func M=null;
如果(c==6)
{
M=(x,y)=>x*y;
}
如果(c==7)
{
M=(x,y)=>x/y;
}
如果(M!=null&&M(a,b)==15)
{
标签1.Text=“Hi”;
}
更新后,情况会变得更复杂:
Func<int, int, int> M = null;
Func<int, int, int> N = null;
Func<int, int, int> K = null;
if(c == 6)
{
M = (x, y) => x * y;
}
if(c == 7)
{
M = (x, y) => x / y;
}
// Similar initialization if N and K
if(M == null || N == null || K == null)
return;
if(K(N(M(a, b), c), d) == 25)
{
lable1.Text = " Hi";
}
Func M=null;
Func N=null;
Func K=null;
如果(c==6)
{
M=(x,y)=>x*y;
}
如果(c==7)
{
M=(x,y)=>x/y;
}
//如果N和K,则进行类似的初始化
如果(M==null | | N==null | | K==null)
回来
如果(K(N(M(a,b),c),d)==25)
{
标签1.Text=“Hi”;
}
但这越来越荒谬了……我认为最好使用数学解析器。这个怎么样
var calc = 0;
if(c == 6)
{
calc = a * c;
}
else
{
if(c == 7)
{
calc = a / c;
}
}
if( calc == 15 )
{
lable1.Text = " Hi";
}
希望这有帮助。这个怎么样
var calc = 0;
if(c == 6)
{
calc = a * c;
}
else
{
if(c == 7)
{
calc = a / c;
}
}
if( calc == 15 )
{
lable1.Text = " Hi";
}
希望这能有所帮助。还有另一种方法:
Dictionaty<int,Func<int,int,int>> operations = new Dictionaty<int,Func<int,int,int>>();
operations.Add(6, (x,y) => x*y);
operations.Add(7, (x,y) => x/y);
...
var result = operations[c](a,b);
dictionary operations=new dictionary();
加上(6,(x,y)=>x*y);
增加(7,(x,y)=>x/y);
...
var结果=操作[c](a,b);
例如,您可以在[static]构造函数中定义字典
-编辑-
阅读编辑后,听起来你真的在寻找一个约束解算器,一个给定多个变量和多个约束的程序,找到一个解决方案。也许您应该签出或其他:)另一种方式:
Dictionaty<int,Func<int,int,int>> operations = new Dictionaty<int,Func<int,int,int>>();
operations.Add(6, (x,y) => x*y);
operations.Add(7, (x,y) => x/y);
...
var result = operations[c](a,b);
dictionary operations=new dictionary();
加上(6,(x,y)=>x*y);
增加(7,(x,y)=>x/y);
...
var结果=操作[c](a,b);
例如,您可以在[static]构造函数中定义字典
-编辑-
阅读编辑后,听起来你真的在寻找一个约束解算器,一个给定多个变量和多个约束的程序,找到一个解决方案。如果你想用语法来编写像
amb
这样的中缀运算符,那么也许你应该检查一下或其他:),这在C#中是不可能的
不可能定义编译时已知的新运算符,更不用说变量运算符了。您需要研究代码生成或本质上的字符串解析。我认为Haskell或某些函数式语言可能允许您创建这种语法(可能是F#?),但我很确定,如果您希望用语法来编写中缀运算符,如
amb
,这在C中是不可能的,那么在C中是不可能的
不可能定义编译时已知的新运算符,更不用说变量运算符了。您需要研究代码生成或本质上的字符串解析。我想也许Haskell或某些函数式语言可以让你创建这种语法(也许是F?),但我很确定你所问的在C中是不可能的。我想jony可能是C的新手,使用func有点意思,但这当然行得通。嗯,这不是他要求的吗?+1用于使用
Func
和开关,但是Func
不需要默认值,一个null
就足够了。@codymanix:var不能在这个上下文中使用,更不用说这个例子了@Blindy:您绝对需要一个默认值,或者在调用之前需要对其进行null检查。如前所述,编译器不会接受它(有充分的理由)我想jony可能是C语言的新手,使用func有点吝啬,但这当然会奏效。好吧,这不是他要求的吗?+1用于使用func
和开关,但func
不需要默认值,null
就足够了。@codymanix:var不能在这个上下文中使用,更不用说这个例子了@Blindy:您绝对需要一个默认值,或者在调用之前需要对其进行null检查。