C# 为什么insert和substring字符串方法不接受无符号64位整数作为参数?

C# 为什么insert和substring字符串方法不接受无符号64位整数作为参数?,c#,.net,string,indexing,C#,.net,String,Indexing,当给定字符串中的字符数可能超过有符号32位整数的最大值时,为什么字符串方法Insert和Substring需要有符号32位整数?请提供一个负索引的例子,以及如何使用它?如果遇到字符数远远超过有符号32位整数的最大值的情况,是否需要重载子字符串和Insert方法,或者.NET framework中已存在处理此类情况的方法?在uint和int之间没有隐式强制转换,后者在.NET库的其他地方非常普遍地使用 与可能出现无效参数相比,在这里强制显式强制转换的用户友好性要低得多。至于字符长度:我想你在创建一

当给定字符串中的字符数可能超过有符号32位整数的最大值时,为什么字符串方法Insert和Substring需要有符号32位整数?请提供一个负索引的例子,以及如何使用它?如果遇到字符数远远超过有符号32位整数的最大值的情况,是否需要重载子字符串和Insert方法,或者.NET framework中已存在处理此类情况的方法?

uint
int
之间没有隐式强制转换,后者在.NET库的其他地方非常普遍地使用


与可能出现无效参数相比,在这里强制显式强制转换的用户友好性要低得多。至于字符长度:我想你在创建一个超过20亿字符的字符串时会遇到其他问题。

我正在从事一个涉及文本处理器的个人项目,因此我想知道这是否可能