gpt4 book ai didi

C# 程序使用的用户字符串的组合长度超过了允许的限制。尝试减少字符串文字的使用

转载 作者:太空宇宙 更新时间:2023-11-03 18:24:50 24 4
gpt4 key购买 nike

当我向返回长字符串的类添加静态字符串属性时,出现此错误。

在同一个项目中,我添加了很多超过 20k 个字符的字符串属性,但是当我创建另一个返回字符串的属性并构建项目时,我得到了这个错误。

如何提高该限制?我尝试使用 Stringbuilder,但同样发生了。

最佳答案

只是想把我最近的经历带到桌面上。

如果您在网上搜索 CS8103 错误,则没有太多信息。大多数信息并不完全准确。

我们昨天在一个大型 C# 解决方案中遇到了这个问题。

据我了解这个编译错误,问题是所有编译时定义的字符串连接起来的总长度。

我将其解释为编译器将所有字符串放入一个巨大的数据 block 中,然后当引用给定的字符串时,它会索引到这个(或类似的)中。

因此,请尝试将其理解为在 cs 文件中定义的所有字符串 - 连接为一个。如果此字符串变得太大 - 正如上面的 Roslyn 问题所解释的那样,我们将面临运行时错误的风险。

代码中的所有字符串,双引号内的都算在内。

public void Main() {
Console.WriteLine("test");
string test = "AnotherTest" + " " + "run";
}

像上面这样的程序有 4 + 11 + 1+ 3 = 19 => "testAnotherTest run"

我们的程序集昨天在将一个特性分支合并到 master 时达到了极限。那就是著名的让杯子溢出的跌落。

似乎没有解决方法,只能将大型程序集拆分成更小的部分,或者将大块字符串移动到资源或其他外部文件中。

我们通过注释掉大部分遗留代码来验证这一点 - 我们可以再次编译。

我们的解决方案是从大型组件中重构特定区域,并为此创建一个新组件。

我知道,文字太多了 - 但我认为这应该得到彻底的解释,因为很难找出导致问题的原因。

鉴于其他地方的信息稀疏,这不是一个常见问题。但是它停止了生产线,并且在解决方案被修复之前没有人可以编译。

关于C# 程序使用的用户字符串的组合长度超过了允许的限制。尝试减少字符串文字的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37193372/

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