gpt4 book ai didi

c# - VS 设计时错误 - 类型 'ICustomType[]' 的对象无法转换为类型 'ICustomType[]'

转载 作者:行者123 更新时间:2023-11-30 17:09:40 27 4
gpt4 key购买 nike

我从 PropertyGrid 创建了一个派生控件,但以下属性导致 Visual Studio 在设计时出现问题。

注意:运行时没有任何问题。这只是关于设计师,如果我从表单的资源文件中手动删除编码值,问题就会得到解决。

构造函数:

/// <summary>
/// Public constructor.
/// </summary>
public FilterablePropertyGrid()
{
base.SelectedObjects = wrapper.ToArray();
}

属性代码:

private List<ObjectWrapper> wrapper = new List<ObjectWrapper>();

/// <summary>
/// Overwride the PropertyGrid.SelectedObject property.
/// The object passed to the base PropertyGrid is the wrapper.
/// </summary>
public new List<ICustomType> SelectedObjects
{
get
{
return wrapper.Any() ?
base.SelectedObjects.Select(p => ((ObjectWrapper)p).SelectedObject).ToList() :
new List<ICustomType>();
}
set
{
if (value == null || value.Count == 0)
{
wrapper = new List<ObjectWrapper>();
base.SelectedObjects = new object[] { };
}
else
{
wrapper = new List<ObjectWrapper>(value.Select(p => new ObjectWrapper(p)));
// Link the wrapper to the parent PropertyGrid.
base.SelectedObjects = wrapper.ToArray();
}
}
}

错误: enter image description here

不知道你能不能帮我看看这是什么问题。

最佳答案

因为这是你自己的自定义类型(不是框架类型),这个错误几乎总是意味着你在两个不同的程序集中声明了相同的接口(interface)。

检查声明此类型的位置。它应该只在一个程序集中。根据需要添加引用,以便所有地方都可以访问单个程序集中的类型。

将相同的代码文件编译成两个程序集会创建两种不同的类型,而这两种类型恰好被称为同一事物。它们不是同一类型,不可互换。

关于c# - VS 设计时错误 - 类型 'ICustomType[]' 的对象无法转换为类型 'ICustomType[]',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12768154/

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