?:VB到C#的运算符

Jar*_*ers 0 c# vb.net operators

我使用在线转换器将一段Visual Basics代码转换为C#.VB中的以下代码:

Dim aset As New DataSet
aset = *code*
Dim str As String = ""
Dim str7 As String = ""
Dim str4 As String = ""
Dim str10 As String = ""

If (If(((str7 = str10) AndAlso (str7 <> "")), 1, 0) = 0) Then
    str7 = Conversions.ToString(aset.Tables.Item(0).Rows.Item(i).Item("PIN"))
End If
If (i <> 0) Then
    str4 = (str4 & " ,")
End If
    str4 = (str4 & str)
    str10 = str7
    i += 1
Run Code Online (Sandbox Code Playgroud)

转换为以下C#代码:

DataSet aset = new DataSet();
aset = *code*
string str = "";
string str7 = "";
string str4 = "";
string str10 = "";

if ((((str7 == str10) && (str7 != "")) ? 1 : 0 == 0))
{
    str7 = Conversions.ToString(aset.Tables[0].Rows[i]["PIN"]);
}
if ((i != 0))
{
    str4 = (str4 + " ,");
}
str4 = (str4 + str);
str10 = str7;
i += 1;
Run Code Online (Sandbox Code Playgroud)

我的问题涉及?:运算符.我试图对它进行研究,但对我来说仍然有点混乱.我在C#版本中收到一条错误,指出"无法确定条件表达式的类型,因为'int'和'bool'之间没有隐式转换." 所以当我更改下面的C#代码时:

if ((((str7 == str10) && (str7 != "")) ? 1 : 0 == 0))
Run Code Online (Sandbox Code Playgroud)

到下面的代码:

if ((((str7 == str10) && (str7 != "")) ? 1 == 0: 0 == 0)) //I changed '1' to '1 == 0'
Run Code Online (Sandbox Code Playgroud)

错误似乎消失了.但是,我不相信我正确地修正了错误来执行程序在VB代码中所做的事情,或者我的解决方案是否改变了那段代码的目的.如果我所做的是正确的,或者我需要做什么,我将非常感谢您的帮助.

Ry-*_*Ry- 15

C#转换错误,VB很糟糕.

If (If(((str7 = str10) AndAlso (str7 <> "")), 1, 0) = 0) Then
Run Code Online (Sandbox Code Playgroud)

If If(((str7 = str10) AndAlso (str7 <> "")), 1, 0) = 0 Then
Run Code Online (Sandbox Code Playgroud)

If Not ((str7 = str10) AndAlso (str7 <> "")) Then
Run Code Online (Sandbox Code Playgroud)

If Not (str7 = str10) OrElse Not (str7 <> "") Then
Run Code Online (Sandbox Code Playgroud)

If str7 <> str10 OrElse str7 = "" Then
Run Code Online (Sandbox Code Playgroud)

.那么等效的C#就是if (str7 != str10 || str7 == "").

  • @ user2366842:你对那些命名变量`str`,`str7`,`str4`和`str10`的人有什么期望?=) (4认同)
  • 不,这显然是被盗代码.您之前的问题使其明确无误.如果你自己没有窃取它,那么"心怀不满的员工"就会这样做.显然,你需要通知你的经理,公司认为这非常严重,责任是巨大的. (4认同)
  • 我可以有一个阿门兄弟吗? (2认同)
  • 我想知道为什么它首先以如此复杂的方式写成? (2认同)
  • Hmya,这种事情有一种有趣的方式可以咬回来,突然之间*我负责让你的公司损失数百万美元.你得到了我的专业意见,处理它是一个有钱来处理这样的事情的人的工作.确保它不是你. (2认同)