gpt4 book ai didi

vb.net - 将 delphi 的 System.Copy 转换为 .net

转载 作者:行者123 更新时间:2023-12-03 18:16:49 24 4
gpt4 key购买 nike

这是我要转换为 .net 的 Delphi 代码:

   s1 := Copy ( s1 , 1,x - 1) + Copy(s1, x + 1,Length(s1));

我试过:

  s1 = s1.Substring(x - 1, 1) + s1.Substring(s1.Length, x + 1)

但是当索引超出范围时我得到错误。在 Delphi 中它工作正常。

添加一行转换.. s2 := s2 + chr(3);

最佳答案

你的参数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)

关于vb.net - 将 delphi 的 System.Copy 转换为 .net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8719873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com