c# - VB转C#帮助(?运算符)

标签 c# vb.net

对于将以下 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/

相关文章:

c# - 如何绘制石原变换(没有交叉点的圆圈)?

C# 字符串字符替换

c# - 为什么 Unity 会忽略非静态公共(public)字段的初始化值?

c# - 如何从 C# 获取和发送 UTF-8 中的字符串到 C++ DLL

VB.net获取窗口信息

vb.net - 以编程方式获取Vb.net中用户已激活的事件的列表

asp.net - 你知道我怎样才能让这个函数产生正确的结果吗?

c# - Linq 多组依据和加入

c# - 使用服务器端技术(UCMA 或 MSPL)检索 Lync 客户端的调用转移规则

sql - 在 VB.NET 中嵌入 SQL 的最佳方式是什么