这是Delphi代码,我试图转换为。net:
s1 := Copy ( s1 , 1,x - 1) + Copy(s1, x + 1,Length(s1));
我试着:
s1 = s1.Substring(x - 1, 1) + s1.Substring(s1.Length, x + 1)
但是当索引超出范围时,我会得到错误。
增加了一行来转换…
您对Substring
的参数是相反的-开始索引在前面,就像在Delphi中一样。
Delphi字符串索引是基于1的。.net字符串索引是基于0的。你有一个典型的差一错误。
最后,您不能对Substring
的长度参数这么随意。在Delphi的Copy
中,您可以指定任意大的长度值,您将获得所有最右边的字符。在Substring
中,你不能要求更多的字符。如果您这样做,则抛出ArgumentOutOfRangeException
。
你需要这个:
s1 = s1.Substring(0, x-1) + s1.Substring(x, s1.Length-x)
我假设你已经确保x
在0
到s1.Length-1
的范围内。
关于你附加的问题,
s2 := s2 + chr(3);
翻译
s2 = s2 + Chr(3)