将VB代码段转换为C#

时间:2013-12-09 09:55:44

标签: c# vb.net

我必须将以下Visual Basic代码段转换为C# 我使用了Telerik Converter 但是C#编译器显示错误(类型兼容性) 在C#中使用以下代码的确切语法是什么?

TotalMessages的类型为int

Select Case TP_DCS
   Case ENUM_TP_DCS.UCS2
      TotalMessages = (TP_UD.Length / 4) \ 66 + ((TP_UD.Length / 4 Mod 66) = 0)
   Case ENUM_TP_DCS.DefaultAlphabet
     TotalMessages = (TP_UD.Length \ 266) - ((TP_UD.Length Mod 266) = 0)
End Select

2 个答案:

答案 0 :(得分:1)

您可以使用 Developer fusion 将VB代码转换为C#。点击Here转到转换页面。

您的C#代码如下所述:

switch (TP_DCS) 
{
    case ENUM_TP_DCS.UCS2:
        TotalMessages = (TP_UD.Length / 4) / 66 + ((TP_UD.Length / 4 % 66) == 0);
        break;
    case ENUM_TP_DCS.DefaultAlphabet:
        TotalMessages = (TP_UD.Length / 266) - ((TP_UD.Length % 266) == 0);
        break;
}

更新:

switch (TP_DCS)
{
    case ENUM_TP_DCS.UCS2:
        TotalMessages = ((TP_UD.Length / 4) / 66) + ((TP_UD.Length / 4 % 66) == 0 ? 1 : 0);
        break;
    case ENUM_TP_DCS.DefaultAlphabet:
        TotalMessages = (TP_UD.Length / 266) - ((TP_UD.Length % 266) == 0 ? 1 : 0);
        break;
}

答案 1 :(得分:0)

我认为第一行给你带来了麻烦

尝试将TotalMessages is of type int更改为Dim TotalMessages As Integer

应该像

int TotalMessages = 0;

switch (TP_DCS) {
    case ENUM_TP_DCS.UCS2:
        TotalMessages = (TP_UD.Length / 4) / 66 + ((TP_UD.Length / 4 % 66) == 0);
        break;
    case ENUM_TP_DCS.DefaultAlphabet:
        TotalMessages = (TP_UD.Length / 266) - ((TP_UD.Length % 266) == 0);
        break;
    default:
        TotalMessages =0;
}