我看到一些代码,其中返回的对象具有Visible成员,可以将其设置为true。我想模仿此功能,但出现错误“对象”不包含“可见”的定义,并且找不到可以接受类型为“对象”的第一个参数的扩展方法“可见”。
这是有效的示例代码:
public AP.GlobalClass APObj = new AP.GlobalClass();
APObj.Application().Visible = true;
这是我试图做的不起作用的事情:
public APControl.A2APGlobalClass APObj_B = new APControl.A2APGlobalClass();
APObj_B.Application().Visible = true; //Error goes with this line
public class A2APGlobalClass
{
public AP.GlobalClass APObj = new AP.GlobalClass();
public Object Application() //Do I need to change "Object" to something else?
{
return APObj.Application(); //This returned object "Object" type does no longer contain the Visible member.
}
该代码可能是封闭源代码,但是根据定义,程序集公开的类型的公共成员必须是可见的。如果您在任何体面的环境中工作,当您将鼠标悬停在该成员上时,intellisense会告诉您返回类型。如果您的编辑器没有智能,则可以使用其他方法来提取此信息。
参考@JeroenVannevel的评论,您可能想阅读静态和动态类型。C#是一种静态类型的语言,因此,您不能在type的引用上调用Visible属性Object
,因为Object没有Visible属性。您需要返回以下之一,而不是Object:
例如,使用下面定义的类型,您可以返回除A以外的任何类型:
interface I { bool Visible { get; set; } }
class A { }
class B : I { public bool Visible { get; set; } }
class C : B { }
class D : C { }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句