我必须将以下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
答案 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;
}