[英]Does casting one generic (value) type to another with dynamic involve boxing/unboxing?
[英]Does casting to base class involve boxing and unboxing
有以下課程:
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
?
裝箱和拆箱僅適用於值類型。 值類型是用struct
聲明的類型。 您不是在使用struct
,而是在使用class
。 因此,裝箱/拆箱對您完全不適用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.