如何在使用關鍵字「as」時將基類數據獲取到子類對象中。我嘗試了下面的代碼,但它返回空數據。「as」關鍵字在c#中返回空數據
class BaseC
{
public int BaseId { get; set; }
public string BaseName { get; set; }
}
class DerivedC: BaseC
{
public int DerivedId { get; set; }
public string DerivedName { get; set; }
}
class Program
{
static void Main(string[] args)
{
BaseC baseC = new BaseC();
baseC.BaseId = 1;
baseC.BaseName = "base class name ";
var derivedC = baseC as DerivedC;
}
}
由於您創建的純粹的'Basec'不是'DerivedC',所以'as'將返回'null,因爲它不能被轉換。在C#中不允許向下轉換。你想達到什麼目的? – 2014-09-26 14:02:47
一個'BaseC'對象並不總是一個'DerivedC'對象(另一種方式是)。您只創建了一個「BaseC」對象而不是「DerivedC」對象。你試圖做一個縮小的演員(BaseC到DerivedC),而只有一個擴展演員才能工作(DerivedC到BaseC)。 – Styxxy 2014-09-26 14:04:03
派生的C繼承自BaseC,並且您想將BaseC視爲DeviedC ...查看問題?另外,爲什麼使用var? var是一個未定義的類型,例如在linq中使用它 – user28470 2014-09-26 14:04:55