我有基於標準抽象類的相關類,它們將從數據表(對於我使用int數組的示例)加載。該類將按類型發起,然後加載該類的具體細節。 Currenlty我正在用switch語句做這件事,但以另一種方式做這件事可能嗎?基於抽象類型創建類
class Program
{
static void Main(string[] args)
{
var list = new[] {1, 1, 3, 2, 2, 4};
TypeBase typeClass = null;
foreach (var i in list)
{
switch (i)
{
case 1:
{
typeClass = new Type1();
break;
}
case 2:
{
typeClass = new Type2();
break;
}
case 3:
{
typeClass = new Type3();
break;
}
}
}
if (typeClass != null)
{
typeClass.LoadDetails();
}
}
}
public class TypeBase
{
public int Type { get; set; }
public virtual void LoadDetails()
{
throw new NotImplementedException();
}
}
public class Type1 : TypeBase
{
public override void LoadDetails()
{
// Load type Specific details
}
}
public class Type2 : TypeBase
{
public override void LoadDetails()
{
// Load type Specific details
}
}
public class Type3 : TypeBase
{
public override void LoadDetails()
{
// Load type Specific details
}
}
您可以使用反射來嘗試解決該類型名稱:'變種類型= Type.GetType(「類型名稱」)'和使用'Activator.CreateInstance(類型)'創建一個實例 – Charleh 2013-05-07 14:46:07