[英]C# - loading inherited class
我有一个叫做FieldDesc
的类。
public class FieldDesc {
public FieldDesc() {
}
}
我还有另一个从FieldDesc
继承的类,称为StandardHoursByCommunitySvcType
。
public class StandardHoursByCommunitySvcType: FieldDesc {
public StandardHoursByCommunitySvcType() {
}
}
在我的控制下-
FieldDesc aTable;
aTable = new FieldDesc();
String TableName = "StandardHoursByCommunitySvcType";
我该怎么做才能使aTable
知道它是StandardHoursByCommunitySvcType
类型的对象?
您的问题不清楚。 您是要声明aTable为StandardHoursByCommunitySvcType还是要确定它是否已被声明为一个?
如果您要声明:
FieldDesc aTable;
aTable = new StandardHoursByCommunitySvcType();
只要StandardHoursByCommunitySvcType从FieldDesc继承就可以
如果您要确定类型:
if(aTable is StandardHoursByCommunitySvcType)
{
//Do something
}
您可以使用is运算符找出答案
if(someObject is StandardHoursByCommunitySvcType )
{
//it means is is object of StandardHoursByCommunitySvcType type
}
如果你有两个班级
public class FieldDesc
{
public FieldDesc()
{
}
public void A()
{
}
public virtual void V()
{
Console.WriteLine("V from FieldDesc");
}
}
public class StandardHoursByCommunitySvcType : FieldDesc
{
public StandardHoursByCommunitySvcType()
{
}
public void B()
{
}
public overrides void V()
{
Console.WriteLine("V from StandardHoursByCommunitySvcType");
}
}
你可以这样做
FieldDesc fd = new StandardHoursByCommunitySvcType();
StandardHoursByCommunitySvcType svc = new StandardHoursByCommunitySvcType();
fd.A(); // OK
fd.B(); // Fails (does not compile)
((StandardHoursByCommunitySvcType)fd).B(); // OK
fd.V(); // OK, prints "V from StandardHoursByCommunitySvcType"
svc.A(); // OK
svc.B(); // OK
svc.V(); // OK, prints "V from StandardHoursByCommunitySvcType"
派生类与基类的分配兼容; 但是,通过类型为基类的变量访问时,您只会看到基类的成员。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.