【问题标题】:ObservableCollection - cannot implement because it does not have matching return typeObservableCollection - 无法实现,因为它没有匹配的返回类型
【发布时间】:2012-08-17 18:12:19
【问题描述】:

我有两个项目。 第一个是带有下一个界面的 Wpf Project (FrameWork 3.5):

public interface View
{
    ObservableCollection<int> Items { set; }  
}

和测试项目(FrameWork 4.0)

public class ViewFake:View
{
    public ObservableCollection<int> Items
    {
        set { throw new NotImplementedException(); }
    }
}

我收到此错误:

ViewFake' 没有实现接口成员'View.Items'。 “ViewFake.Items”无法实现“View.Items”,因为它没有 具有匹配的返回类型 'System.Collections.ObjectModel.ObservableCollection`1'。

我查看了 ObservableCollection 在两个版本中的位置,并且

那么,唯一的解决方案是升级主项目还是降级测试项目?

【问题讨论】:

    标签: .net compiler-errors


    【解决方案1】:

    如果我没记错的话,ObservableCollection 在 .NET 3.5 中位于 System.Windows.* 命名空间中,而仅在 4.0 中它才被移到 System.Collections.ObjectModel 命名空间中。 p>

    *update: 改变的不是命名空间,而是程序集。结果是一样的,但是:.NET 认为它是不同的类型,因为包含的程序集是类型信息的一部分。

    这里更大的问题是您的测试和被测类使用不同的 .NET 框架版本和不同版本的公共语言运行时。这可能会以眼泪收场。您可以为您的项目使用相同的版本吗?

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    相关资源
    最近更新 更多