gpt4 book ai didi

c# - 条件 if C# 和 VB 中的差异

转载 作者:可可西里 更新时间:2023-11-01 08:52:08 26 4
gpt4 key购买 nike

为什么 VB 中的条件 if 要求不处理条件的直接转换。例如在 C# 中,这很好......

        bool i = false;

i = (1<2)? true:false;

int x = i? 5:6;

但是如果我想在 VB 中做同样的事情,我就必须强制转换它

Dim i as Boolean = CBool(IIF(1<2, True, False))
Dim x as Integer = CInt(IIF(i, 5, 6))

我不明白为什么 C# 会进行转换而 VB 不会。 应该我在我的 C# 条件句上进行转换,例如

bool i = Convert.ToBoolean((1<2)? True: False);
int x = Convert.ToInt32(i? 5:6);

此外,是的,我知道 IIF 返回类型对象,但我认为 C# 可以返回的不仅仅是 True|False;在我看来,C# 处理隐式转换。

最佳答案

IIf 是一个函数,不等同于 C# 的 ?:,它是一个运算符。

不过,运算符版本在 VB.NET 中已经存在了一段时间,只是称为 If:

Dim i As Boolean = If(1 < 2, True, False)

……这当然是没有意义的,应该写成:

Dim i As Boolean = 1 < 2

... 或者,使用 Option Infer:

Dim i = 1 < 2

关于c# - 条件 if C# 和 VB 中的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26021325/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com