基本上,我想做这样的事情:
public class A
{
public void AddData(byte[] Data)
{
//analyze data
if (BoolFromAnalyzedData == true)
{
AFirstType a = new AFirstType();
a.SomeInt = IntFromAnalyzedData;
this = a;
}
else
{
ASecondType a = new ASecondType();
a.SomeString = StringFromAnalyzedData;
this = a;
}
}
}
public class AFirstType : A
{
public int SomeInt;
}
public class ASecondType : A
{
public string SomeString;
}
然后,我希望能够做到这一点:
a.AddData(data);
if (a is AFirstType)
DoStuff((a as AFirstType).SomeInt);
else if (a is ASecondType)
DoStuff((a as ASecondType).SomeString);
我有一个类,然后是两个具有不同属性的派生类。当我创建基类时我不知道它应该是哪种类型,我只能在我获取一些数据并分析它时了解它是哪种类型。然后,我希望能够检查它是哪种类型并使用派生类的属性。
问题是,我不能this
在 C# 中使用,那么我可以使用什么替代方法?