C#startIndex +长度> this.length

查尔斯

我正在尝试一个奇怪的问题。我将大量数据(一个struct)编码为十六进制字符串,并以varbin的形式上传到服务器。然后我下载了它,有时它无法解码。因此,我决定对一些印刷品进行编码:

public static void d(String TAG, String message)
{
    int maxLogSize = 1000;
    for (int i = 0; i <= message.Length / maxLogSize; i++)
    {
        int start = i * maxLogSize;
        int end = (i + 1) * maxLogSize;
        if (end > message.Length - 1)
            end = message.Length - 1;
        //end = end > message.Count() ? message.Count() : end;
        print(message.Substring(start, end));
        print("start: " + start.ToString() + " end: " + end.ToString() + " size: " + message.Length);
    }
}

然后在服务器响应协程的try / catch中,我得到以下信息:

11-03 15:03:02.616 13103-13117/com.Mindfunk.minus I/Unity: start: 63000 end: 64000 size: 127834

(Filename: ./artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 37)
11-03 15:03:02.636 13103-13117/com.Mindfunk.minus I/Unity: There was an error decoding this challenge replay . Maybe it is corrupted.
System.ArgumentOutOfRangeException: startIndex + length > this.length
Parameter name: length
    at System.String.Substring (Int32 startIndex, Int32 length) [0x00000] in <filename unknown>:0 
    at DBConnection+Log.d (System.String TAG, System.String message) [0x00000] in <filename unknown>:0 
    at DBConnection+<DownloadChallengeReplay>c__IteratorE.MoveNext () [0x00000] in <filename unknown>:0 

我不知道为什么在字符串的一半之后不能读取,只考虑大小,因为没有那么多数据集,它就像一个魅力。

log2(64000)大约为16。我假设C#字符串的最大长度为16位,但令人惊讶!我发现它是32位。考虑string.substring并且string.length根本不考虑相关方法,但是为什么呢?

茫然而困惑

开始:63000结束:64000

 message.Substring(start, end)

Substring的第二个参数是要提取的字符串长度您告诉它从位置63000开始并检索下一个64000字符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

长度和this-> length在c ++中的代码中是否相同?

来自分类Dev

选择长度与options.length

来自分类Dev

C字符串的长度:std :: strlen()与std :: char_traits <char> :: length()

来自分类Dev

何时使用长度以及何时使用length()

来自分类Dev

文件上传长度错误(... files.length)

来自分类Dev

Array.length给出错误的长度

来自分类Dev

index:length(......):长度为0的参数

来自分类Dev

.length计算字符,而不是数组长度

来自分类Dev

RijndaelManaged密钥长度是否与AES [key length]相同?

来自分类Dev

什么是全局长度变量(window.length)?

来自分类Dev

Mechanize :: ResponseReadError-Content-Length与响应正文长度不匹配

来自分类Dev

为什么length(column)和lengthb(column)返回相同的长度?

来自分类Dev

Node.JS请求数据长度小于Content-Length中给出的长度

来自分类Dev

递增序列的长度C ++

来自分类Dev

C 长度间距

来自分类Dev

startIndex不能大于字符串的长度。参数名称:vb.net中的startIndex

来自分类Dev

C ++-如何查找整数的长度

来自分类Dev

C字符数组及其长度

来自分类Dev

在C ++中查找范围长度

来自分类Dev

C ++-如何查找整数的长度

来自分类Dev

C中的char数组的长度

来自分类Dev

C语言的“随机长度”?

来自分类Dev

C 字符串长度

来自分类Dev

C 动态长度字符数组

来自分类Dev

如何确定HTTP数据包中“ Content-Length:”的长度

来自分类Dev

为什么Java的String具有方法length()而非属性长度(如数组?)

来自分类Dev

如何使用fish_prompt_pwd_dir_length在提示符下更改鱼的pwd长度?

来自分类Dev

为什么Java的String具有方法length()而不是属性长度(如数组?)

来自分类Dev

设置Array [i] .length = 13; 也会更改其他数组的长度。为什么?

Related 相关文章

  1. 1

    长度和this-> length在c ++中的代码中是否相同?

  2. 2

    选择长度与options.length

  3. 3

    C字符串的长度:std :: strlen()与std :: char_traits <char> :: length()

  4. 4

    何时使用长度以及何时使用length()

  5. 5

    文件上传长度错误(... files.length)

  6. 6

    Array.length给出错误的长度

  7. 7

    index:length(......):长度为0的参数

  8. 8

    .length计算字符,而不是数组长度

  9. 9

    RijndaelManaged密钥长度是否与AES [key length]相同?

  10. 10

    什么是全局长度变量(window.length)?

  11. 11

    Mechanize :: ResponseReadError-Content-Length与响应正文长度不匹配

  12. 12

    为什么length(column)和lengthb(column)返回相同的长度?

  13. 13

    Node.JS请求数据长度小于Content-Length中给出的长度

  14. 14

    递增序列的长度C ++

  15. 15

    C 长度间距

  16. 16

    startIndex不能大于字符串的长度。参数名称:vb.net中的startIndex

  17. 17

    C ++-如何查找整数的长度

  18. 18

    C字符数组及其长度

  19. 19

    在C ++中查找范围长度

  20. 20

    C ++-如何查找整数的长度

  21. 21

    C中的char数组的长度

  22. 22

    C语言的“随机长度”?

  23. 23

    C 字符串长度

  24. 24

    C 动态长度字符数组

  25. 25

    如何确定HTTP数据包中“ Content-Length:”的长度

  26. 26

    为什么Java的String具有方法length()而非属性长度(如数组?)

  27. 27

    如何使用fish_prompt_pwd_dir_length在提示符下更改鱼的pwd长度?

  28. 28

    为什么Java的String具有方法length()而不是属性长度(如数组?)

  29. 29

    设置Array [i] .length = 13; 也会更改其他数组的长度。为什么?

热门标签

归档