对于将以下 VB 代码转换为 C# 的帮助,我将不胜感激。到目前为止,代码转换器工作正常,但在这部分我有点碰壁,我不知道如何解决。
For Y As Integer = 0 To If(Flip, 1, 3)
...
Next
一开始我认为这会起作用:
for (int Y = 0; (Y <= Convert.ToInt32(Flip)) ? 1 : 3; Y++)
{
...
}
但遗憾的是,事实并非如此。也许我只是不知所措,但我不确定如何在这里继续。
感谢您的任何建议!
编辑:
翻转是一个 bool 值。转换器建议
for (int Y = 0; Y <= Flip ? 1 : 3; Y++)
导致 运算符 <= 不能应用于 int 和 bool 类型的操作数。因此,为什么我尝试转换。然而,转换导致无法将 int 隐式转换为 bool 或相反。
解决方案:
Flip 周围的括号? 1:3好像解决了问题。因此,除了一个小细节外,转换似乎是正确的。
for (int Y = 0; Y <= (Flip ? 1 : 3); Y++)
谢谢大家!
最佳答案
你应该使用
(Flip ? 1 : 3)
相反。两个 VB 的 If
operator和 ?:
operator在 C# 中要求第一个操作数是 bool 值。因此,在您的情况下,Flip
已经必须是一个 bool 值,您根本不必将其转换为整数即可在条件运算符中使用它。
关于c# - VB转C#帮助(?运算符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32824403/