有什么情况必须使用 ++var 吗?

发布于 2024-11-09 11:58:06 字数 145 浏览 0 评论 0原文

问题是是否存在不能使用 var++ 而必须使用 ++var (或相反)的情况。

也就是说,据我所知,使用 ++var 而不是 var++ (或相反)的唯一原因是节省空间。

问题是,我们是否可以只拥有 var++ 能力,而不失去该语言的任何功能?

The question is whether there is a situation where you can not use var++ and must use ++var (or the other way around).

That is, as far as I know, the only reason to use ++var over var++ (or the other way around) is to save space.

The question is, can we just have only the var++ abillity and not lose anything in the language's power?

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

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

发布评论

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

评论(1

岁月如刀 2024-11-16 11:58:06

如果您在更大的表达式中使用该表达式,并且您肯定希望表达式的值是递增的值,则必须使用 ++var。例如,在 C# 中:

int foo = 0;
foreach (var x in someCollection)
{
    Console.WriteLine("{0}: {1}", x, ++foo);
}

当然,您可以将其更改为在单独的语句中使用 foo++,但这并不总是可行:

int foo = 0;
Expression<Func<int>> expression = () => ++foo;

这将返回 1< /code> 第一次调用它时,您无法将语句 lambda 转换为表达式树。

You have to use ++var if you're using the expression within a bigger expression, and you definitely want the value of the expression to be the incremented one. For example, in C#:

int foo = 0;
foreach (var x in someCollection)
{
    Console.WriteLine("{0}: {1}", x, ++foo);
}

Of course you could change this to use foo++ in a separate statement, but that isn't always feasible:

int foo = 0;
Expression<Func<int>> expression = () => ++foo;

That will return 1 the first time you call it, and you can't convert statement lambdas to expression trees.

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