在C#中,pred和succ的等价物是什么?

时间:2010-12-19 08:01:30

标签: c# pascal equivalent

Pascal是我的学习语言,我很好奇 C#是否也有predsucc的函数。

这是我在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,但找不到答案)

4 个答案:

答案 0 :(得分:4)

C#中没有predsucc个函数。您只需撰写n - 1n + 1

答案 1 :(得分:1)

您可以使用++或 - 运算符:

3++ = 4
3-- = 2

不知道为什么你需要它,虽然你可以做3 + 1或3-1:)

答案 2 :(得分:1)

你在c#中有方法重载所以很容易有pred和succ,你可以通过:

public int pred(int input)
{
   return input - 1;
}

public char pred(char input)
{
  return (char)((int)input - 1);
}
....

答案 3 :(得分:0)

使用扩展程序:

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)。如果您关注性能,请检查来电是否内联。

注意:++--充当IncDec,而不是SuccPred