Convert delphi's System.Copy to .net



这是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)

我假设你已经确保x0s1.Length-1的范围内。


关于你附加的问题,

s2 := s2 + chr(3);

翻译

s2 = s2 + Chr(3)

最新更新