C# 中 pred 和 succ 的等效项是什么?

发布于 2024-10-08 11:27:01 字数 343 浏览 9 评论 0原文

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# 吗?如果是,这些函数的命名空间是什么?

(我搜索了谷歌,但找不到答案)

Pascal is my study language and I am curious whether C# also has the functions pred and succ.

This is what I have done in Pascal that I want to try in C#

// in Pascal:
pred(3) = 2
succ(False) = True
pred('b') = 'a'
type enum = (foo, bar, baz);
succ(bar) = baz; pred(bar) = foo

Is the same code applicable for C#, too? If so, what is the namespace for these functions?

(I searched Google, but couldn't find the answer)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

み零 2024-10-15 11:27:02

C# 中没有 predsucc 函数。您只需编写 n - 1n + 1 即可。

There aren't pred and succ functions in C#. You just write n - 1 or n + 1.

故人爱我别走 2024-10-15 11:27:02

你在 C# 中有方法重载,所以很容易有 pred 和 succ,你可以通过以下方式做到这一点:

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

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

You have method overloading in c# so it's easy to have pred and succ, You can do it by:

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

public char pred(char input)
{
  return (char)((int)input - 1);
}
....
情绪失控 2024-10-15 11:27:02

使用扩展:

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,而不是 Succ和Pred。

Using extensions:

public static int Pred(this int self) => self - 1;
public static int Succ(this int self) => self + 1;

Then, this would work:

3.Pred() //-> 2
int x = 3;
x.Succ() //-> 4

Probably not considered very idiomatic, but still works. Would have to override for other integer types (like short). Check if the calls get inlined if you're concerned with performance.

Note: ++ and -- act as Inc and Dec, not Succ and Pred.

硬不硬你别怂 2024-10-15 11:27:02

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

3++ = 4
3-- = 2

不知道为什么您需要它,尽管您可以只执行 3+1 或 3-1 :)

You can use ++ or -- operator:

3++ = 4
3-- = 2

Not sure why you would need it though when you can just do 3+1 or 3-1 :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文