You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从.NET Core切换到.NET Framework时出现listadb变量作用域报错

问题原因

该报错是C#语言版本兼容性导致的:

  • 原有.NET Core项目默认使用C# 7.0及更高版本,该版本允许lambda表达式参数名与外层作用域的变量重名
  • .NET Framework项目默认使用更低的C#语言版本,语法规则不允许lambda参数、局部函数内变量和外层作用域的已定义变量(你外层已经定义了List<indexstan> listadb)重名,所以会抛出冲突错误。
解决方案

方案1:修改lambda参数名(最推荐,无兼容问题)

直接把FirstOrDefault里的lambda参数名改成其他不冲突的名称即可,修改后的代码如下:

//RETURN STANDYSP FUNCTION
double zwr(string myIndex)
{
    var result = listadb.FirstOrDefault(x => x.index == myIndex)?.standysp;
    return result ?? -1;
}

修改后代码可直接在所有C#版本环境下正常运行。

方案2:升级.NET Framework项目的C#语言版本

如果不想修改原有代码,可手动调整项目使用的C#语言版本:

  • 右键点击你的.NET Framework项目,选择「属性」
  • 切换到「生成」标签页,点击底部的「高级」按钮
  • 在弹出的窗口中,将「语言版本」选择为「C# 7.0」或更高版本,保存设置后重新编译即可

注意:.NET Framework最高可支持到C# 7.3版本,更高版本的C#语法不保证完全兼容。

内容的提问来源于stack exchange,提问作者shade999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:45:01