2016-09-29 147 views
0

具有低於類:是否強制轉換爲基類,包括裝箱和拆箱

public abstract class FieldElementBaseCL : FormElementBaseCL 
{ 
    public FieldElementBaseCL(FormElementGroupBaseCL parentElement, int linkedFieldID) : base(parentElement) 
    { 
     LinkedFieldID = linkedFieldID; 
    } 

    [DataMember] 
    [Browsable(false)] 
    public int LinkedFieldID { get; set; } 

    [Browsable(false)] 
    public LabelControl LabelComponent { get; set; } 

    public abstract FieldElementDTOBase GetElementDTO(); 

} 

[DataContract] 
public class FieldElementNumberEditCL : FieldElementBaseCL 
{ 
    public FieldElementNumberEditCL(FormElementGroupBaseCL parentElement, int linkedFieldID) : base(parentElement, linkedFieldID) 
    { 

    } 

    public override FieldElementDTOBase GetElementDTO() 
    { 
     FieldElementNumberEditDTOCL elementDTO = new FieldElementNumberEditDTOCL(); 

     return elementDTO; 
    } 
} 

正如你看到的,有它創建FieldElementNumberEditCL類的實例線。那麼,GetElementDTO涉及拳擊/拆箱,因爲它的返回類型是FieldElementBaseCL

回答

3

裝箱和取消裝箱只適用於值類型。值類型是用struct聲明的值。您沒有使用struct,您正在使用class。因此,拳擊/拆箱對你來說完全不適用。