gpt4 book ai didi

c# - Lambda 表达式创建不相关的编译错误

转载 作者:行者123 更新时间:2023-12-02 10:45:42 26 4
gpt4 key购买 nike

每当我向我的 wpf 项目添加 lambda 表达式(以下列形式)时,我都会收到错误消息。这些错误与表达式无关,但每次我添加一个时它们都会出现。

这是我的最新消息:

using ( LeisureServiceClient client = ServiceFactory.Instance.GetLeisureService() )
{
client.Execute( ServiceFactory.Instance.ConnectionDetails, new MoveBasketItemsToAccountCommand()
{
BasketItemIDs = bisList.ToList().ConvertAll<Guid>( bis => bis.ID )
} );
}

这对我来说似乎完全有效,这会产生以下编译错误,突出显示 client来自 client.Execute(...) .
Error 43: The type 'System.Windows.DependencyObject' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'.

此代码与 DependancyObject 无关。无论如何,System.Windows 在 .cs 文件中被引用,该文件还包含:
public class PointOfSaleViewModel : DependencyObject

当 lambda 表达式被删除时,编译起来非常高兴。

现在,为了增加困惑......这很好:
ServiceFactory.Instance.ShiftDataRefreshedEvent += ( s, e ) =>
{
Account = new ObservableCollection<BasketItemSummary>( ServiceFactory.Instance.CurrentContact.Account );
Basket = new ObservableCollection<BasketItemSummary>( ServiceFactory.Instance.Shift.OpenCurrentContact.Basket );
};

所以,导致错误的不是 lambda 表达式本身,我不知道为什么它不能编译,并且非常渴望在我的头脑爆炸之前得到一些输入。

更新

同事建议的替代语法
BasketItemIDs = bisList.ToList().ConvertAll( delegate( BasketItemSummary basketItem ) { return basketItem.ID; } )

也失败了,给出了同样的编译错误。

最佳答案

这听起来像 BasketItemSummary (或其中一个属性)公开了对公共(public) API 的这种依赖关系——也许它是该类型的基类。简单地说:按照它的指示添加缺少的引用。

关于c# - Lambda 表达式创建不相关的编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3977145/

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