【发布时间】:2015-11-16 08:37:30
【问题描述】:
我有一个函数QMain(),它的返回类型是object。
public class QMain
{
public object objQ(string str)
{
if (str.ToUpper() == "A")
{
clsA objA = new clsA();
return objA;
}
else if (str.ToUpper() == "B")
{
clsB objB = new clsB();
return objB;
}
else
return "";
}
}
以下是clsA:
public class clsA
{
public string strMessage { get; private set; }
public static string staticField;
public bool cantAccessThisFn(string str)
{...}
}
以上两个类都在同一个项目中,这是一个类库。我创建了另一个控制台应用程序,其中包含了上述项目的dll。现在,我正在做:
QMain obj=new QMain();
object A=obj.objQ("A");
我可以得到strMessage、staticField,但不能得到cantAccessThisFn。如果我直接创建clsA 的对象,我可以得到cantAccessThisFn。有什么方法可以从 obj(QMain 类的对象)访问这个函数?
我收到以下错误:
'object' 不包含 'cantAccessThisFn' 的定义,并且没有扩展方法 'cantAccessThisFn' 接受第一个参数 可以找到类型“对象”(您是否缺少 using 指令或 汇编参考?)
【问题讨论】:
-
我不是你“获得”这些领域的方式。类型
object没有这样的字段,这就是您正在使用的,除非您转换为您的类型之一。 -
您想从
clsA.cantAccessThisFn访问cantAccessThisFn?还是来自一个实例?
标签: c#