Visual Studio 2015 - 编译器在 big fluent 调用中给出 Stack Overflow
Visual Studio 2015 - Compiler giving Stack Overflow on big fluent call
我有这样的代码:
SomeObject.MakeFluent()
.AddProperty(new MyProperty() { ... })
.AddProperty(new MyProperty() { ... })
.AddProperty(new MyProperty() { ... })
.AddProperty(new MyProperty() { ... })
.AddProperty(new MyProperty() { ... })
//[+1024 times]
.AddProperty(new MyProperty() { ... });
编译时,出现 csc.exe 错误,堆栈溢出。如果我将链式方法调用更改为:
var fluentAux = SomeObject.MakeFluent();
fluentAux.AddProperty(new MyProperty() { ... });
fluentAux.AddProperty(new MyProperty() { ... });
fluentAux.AddProperty(new MyProperty() { ... });
上面的代码工作正常。
有没有办法在 VS2015 的 C# 编译器上配置最大堆栈调用?我问是因为在 VS2013 上,这个问题不会发生。
VS2015 编译器的弹性变差了吗?
注意:编译器正在返回 'stack overflow',而不是我的程序。
按照@DaveShaw 的建议打开了 github 上的一个问题:
https://github.com/dotnet/roslyn/issues/9795
我有这样的代码:
SomeObject.MakeFluent()
.AddProperty(new MyProperty() { ... })
.AddProperty(new MyProperty() { ... })
.AddProperty(new MyProperty() { ... })
.AddProperty(new MyProperty() { ... })
.AddProperty(new MyProperty() { ... })
//[+1024 times]
.AddProperty(new MyProperty() { ... });
编译时,出现 csc.exe 错误,堆栈溢出。如果我将链式方法调用更改为:
var fluentAux = SomeObject.MakeFluent();
fluentAux.AddProperty(new MyProperty() { ... });
fluentAux.AddProperty(new MyProperty() { ... });
fluentAux.AddProperty(new MyProperty() { ... });
上面的代码工作正常。
有没有办法在 VS2015 的 C# 编译器上配置最大堆栈调用?我问是因为在 VS2013 上,这个问题不会发生。
VS2015 编译器的弹性变差了吗?
注意:编译器正在返回 'stack overflow',而不是我的程序。
按照@DaveShaw 的建议打开了 github 上的一个问题: https://github.com/dotnet/roslyn/issues/9795