Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将VB.Net代码转换为C时出现逻辑错误#_C#_Vb.net_Loops_Code Conversion - Fatal编程技术网

C# 将VB.Net代码转换为C时出现逻辑错误#

C# 将VB.Net代码转换为C时出现逻辑错误#,c#,vb.net,loops,code-conversion,C#,Vb.net,Loops,Code Conversion,我有以下VB.Net代码: Dim t as String=“111100111000011101111100101111010011000011000111010000101001110011011010011010000001010011110011001101” 作为整数的Dim i 如果(t.长度Mod 8)为0,则 对于i=1至8-(t.长度Mod 8) t=“0”+t 下一个 如果结束 当我把它转换成C时,它变成: string t=“11110011100001110111110

我有以下VB.Net代码:

Dim t as String=“111100111000011101111100101111010011000011000111010000101001110011011010011010000001010011110011001101”
作为整数的Dim i
如果(t.长度Mod 8)为0,则
对于i=1至8-(t.长度Mod 8)
t=“0”+t
下一个
如果结束
当我把它转换成C时,它变成:

string t=“1111001110000111011111001011110100110000111000111010000101001110011011011011011010000010011110011001101”;
int i=0;
如果((t.长度%8)!=0)
{

对于(i=1;i
for
VB中的边界是预先计算的,在执行循环时不会改变。因此,计算一次
t.Length Mod 8
,然后使用该值

在C#中,每次都会对条件进行评估,并且由于不断更改
t
t.Length Mod 8
每次都会给出新的值

另外,由于字符串在.NET中是不可变的,因此您的代码最多会生成
t
的7个副本。您确实应该这样做:

Dim diff As Integer=t.长度Mod 8
如果差异为0,则
t=新字符串(“0”c,8-差异)&t
如果结束

对于VB中的
边界是预先计算的,并且在执行循环时不会更改。因此,
t.Length Mod 8
计算一次,然后使用该值

在C#中,每次都会对条件进行评估,并且由于不断更改
t
t.Length Mod 8
每次都会给出新的值

另外,由于字符串在.NET中是不可变的,因此您的代码最多会生成
t
的7个副本。您确实应该这样做:

Dim diff As Integer=t.长度Mod 8
如果差异为0,则
t=新字符串(“0”c,8-差异)&t
如果结束

正如@GSerg在关于预计算的回答中所说的,但是如果不是alt,那么这个代码至少要在整个字符串的开头添加0,如果我理解是8。您应该使用
t=t.PadLeft(t.Length+(t.Length%8),'0')
这是itas@GSerg在回答有关预计算的问题时说的,但是如果不是alt,那么这个代码至少要在整个字符串的开头加上0,如果我理解的话,至少是8。应该使用
t=t.PadLeft(t.Length+(t.Length%8),“0”)
谢谢你。它现在工作了!!这就是我喜欢stackoverflow.com的原因谢谢你。它现在工作了!!这就是我喜欢stackoverflow.com的原因