由于错误,构建失败- 'Value_Type._editor是'字段'But用作'类型&
本文关键字:editor Type 字段 类型 用作 But Value 错误 构建 失败 于错误 | 更新日期: 2023-09-27 18:01:30
有人能帮助我理解为什么我得到这个错误在我的代码,我怎么能解决它?
'Value_Type._editor is a 'field' but is used like a 'type'
请参阅下面的代码:
void MainFormLoad(object sender, EventArgs e)
{
Value_Type valueType = new Value_Type(typeof(TestEditorClass));
}
My Value_Type
class:
public class Value_Type
{
object _editor;
string _content;
public Value_Type(object editor)
{
this._editor = editor;
this._displayName = displayName;
}
public string Content
{
get { return _content; }
set { _content = value; }
}
[Editor(typeof(_editor), typeof(UITypeEditor))] // the error appears here when I pass _editor as a parameter to the attribute.
public IRecord Key { get; set; }
}
typeof(_editor)
无效。正如错误消息告诉您的那样,typeof
的参数必须是一个类型,例如typeof(TestEditorClass)
, 而不是是一个类型的实例。
在这种情况下,看起来你的_editor
是类型,即(Type)_editor
将比_editor.GetType()
更合适。
但是,这两种方法都不能单独解决问题,因为属性参数必须是常量。
您的代码段中有几个问题
-
typeof()
需要一个类型,你正在传递一个变量,这就是编译器引发错误的原因。要获取对象的类型,可以使用object.GetType()
。当您在_editor
中存储Type时,只需将类型转换为(Type)_editor
。 -
_editor
是一个实例变量,你不能在那里访问它。访问非静态成员_editor
需要对象引用