【问题标题】:Is there a version of the shorthand If-Then-Else in C# (cond ? a : b), in VB.Net? [duplicate]在 VB.Net 中是否有 C# (cond ? a : b) 中的速记 If-Then-Else 版本? [复制]
【发布时间】:2025-12-19 00:40:03
【问题描述】:

可能重复:
Is there a conditional ternary operator in VB.NET?

在 C# 中是否有简写 If-Then-Else 的版本:

c = (a > b) ? a : b;

意思...

if (a > b) {
  c = a; }
else {
  c = b; }

.. 在 VB.Net 中?

【问题讨论】:

标签: c# vb.net


【解决方案1】:

是的,IF 就是你想要的

这里有一些参考

http://msdn.microsoft.com/en-us/library/bb513985

这是它的用途

c = IF(a > b, a , b)

显然有一个名为 IIF 的运算符,但它已被弃用。

【讨论】:

  • 这是超级弃用的,现在只是如果。
  • 严格来说,我相信IIf 是一个函数If 是一个运算符
  • @MarkJ 完全是,IIf hsa 更多开销
  • 公共函数 IIf(ByVal Expression As Boolean, ByVal TruePart As Object, ByVal FalsePart As Object) As Object
【解决方案2】:

你想使用If operator:

Dim maximum = If(a > b, a, b)

还有较旧的Iif function,它仍然有效,但If 更好,因为它:

  • 执行类型推断(如果ab 都是整数,则返回值将是整数而不是对象)和
  • 操作的捷径(如果a > b,仅评估a,反之亦然)——如果ab 是一个函数调用,则这是相关的。

【讨论】: