[英]What's the equivalent for pred and succ in C#?
Pascal是我的学习语言,我很好奇C#是否还具有pred
和succ
函数。
这就是我想在Pascal中尝试在C#中进行的操作
// in Pascal:
pred(3) = 2
succ(False) = True
pred('b') = 'a'
type enum = (foo, bar, baz);
succ(bar) = baz; pred(bar) = foo
同样的代码也适用于C#吗? 如果是这样,这些函数的名称空间是什么?
(我搜索了Google,但找不到答案)
C#中没有pred
和succ
函数。 您只需写n - 1
或n + 1
。
您可以使用++或-运算符:
3++ = 4
3-- = 2
不知道为什么您只需要3 + 1或3-1时就需要它:)
您在c#中具有方法重载,因此可以容易地进行pred和succ,可以通过以下方法实现:
public int pred(int input)
{
return input - 1;
}
public char pred(char input)
{
return (char)((int)input - 1);
}
....
使用扩展名:
public static int Pred(this int self) => self - 1;
public static int Succ(this int self) => self + 1;
然后,这将起作用:
3.Pred() //-> 2
int x = 3;
x.Succ() //-> 4
可能不是很习惯,但仍然可以。 必须覆盖其他整数类型(例如short
)。 如果您担心性能,请检查电话是否内联。
注意: ++
和--
充当Inc
和Dec
,而不是Succ
和Pred
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.