N3w*_*bie 0 .net c# types casting
首先,我是C#的新手.我得到
的错误是:
附加信息:无法将类型为"UserGUI.MyItems"的对象强制转换为"CommonBookLib.AbstractItem".
他们是两个不同的类:
public class MyItems
{
public string ItemName { get; set; }
public int CopyNumber { get; set; }
public int Guid { get; set; }
public DateTime? TimePrinted { get; set; }
public string Category { get; set; }
public string SubCategory { get; set; }
public bool? BestSeller { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和
public class AbstractItem : IPropsDetails
{
public int CopyNumber { get; }
public string ItemName { get; }
public DateTime Time { get; }
public int Guid { get; }
public AbstractItem(int copyNumber, string itemName, DateTime time, int guid)
{
this.CopyNumber = copyNumber;
this.ItemName = itemName;
this.Time = time;
this.Guid = guid;
}
}
Run Code Online (Sandbox Code Playgroud)
它发生在我做的时候:
AbstractItem myItemsList = (AbstractItem)LibraryList.SelectedItem;
logicManager.Remove(myItemsList);
Run Code Online (Sandbox Code Playgroud)
好吧,正如你所看到的,我有MyItems哪些负责我的GUI中的DataBindingsAbstractItem,负责实现对我的数据保存位置的添加操作.
由于我没有很好地管理我的代码,我遇到了这种情况,我真的不想改变MyItems(删除和重新编码AbstractItem).我怎么能转换这两个?
顺便说一句,我知道AbstractItem只有4个属性,而MyItems有更多.
但是,我有孩子具有完全相同的属性AbstractItem.
任何帮助,将不胜感激.提前致谢!
从MyItems类中删除也存在的字段AbstractItem,然后MyItems从中派生出来.
您必须添加一个构造函数MyItems,将所需的值传递给基础构造函数,或者向基类添加一个空构造函数.
public class MyItems : AbstractItem
{
public MyItems(int copyNumber, string itemName, DateTime time, int guid)
:base(copyNumber, itemName, time, guid)
{
}
public DateTime? TimePrinted { get; set; }
public string Category { get; set; }
public string SubCategory { get; set; }
public bool? BestSeller { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |