gpt4 book ai didi

C#:抛出无效的表达式编译

转载 作者:可可西里 更新时间:2023-11-01 08:18:42 26 4
gpt4 key购买 nike

我正在使用这段代码来检查 queryable 值:

visitor.Queryable = queryable ?? throw new Exception("error message");

我遇到编译错误:

error CS1525: Invalid expression term 'throw'

我正在使用 4.5.2 .net 框架。有什么想法吗?

最佳答案

此功能仅在 C# 7.0 之后可用。参见 Throw exception of What's New in C# 7.0 .

如果您使用的是较旧的 VS 并希望启用 C# 7 功能:请查看 How to use c#7 with Visual Studio 2015?如果不是在 VS 2017 中。


如果您使用的是以前版本的 C# 编译器,那么您不能以这种方式使用 ?? 运算符,因为 throw 不会返回正确的操作数值(value)。作为C# Docs说:

It returns the left-hand operand if the operand is not null; otherwise it returns the right operand.

模式是这样的:

var result = someObject ?? valueToAssignIfWasNull;

要解决它,请改写:

if(queryable == null)
{
throw new Exception("error message");
}
visitor.Queryable = queryable;

关于C#:抛出无效的表达式编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47156277/

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