【问题标题】:Casting one class to member of other class of different type将一个类转换为其他不同类型的类的成员
【发布时间】:2018-03-16 23:24:20
【问题描述】:

我想为成员 A.Edits 分配一个值,该值应该与 A 相同。我尝试将一个类转换为另一个类,但它不起作用。仅在“A.Edits”中,我想分配值休息 A.Errors 和 A.Warnings 我不想碰。我在编辑类 B 中得到结果集。

我有两个用户定义的 ClaimEditModel 和编辑类型的 A 和 B 类,如下所示-
类定义如下-

public class ClaimEditModel()
{
    Edits = new List<EditInfo>();
    Errors = new List<EditRuleError>();
    Warnings = new List<EditRuleError>();
}

public class Edit
{
    public int EditLevel;
    public int EditNumber;
    public string EditType;
    public List<Field> PrimaryFields;
    public string Rule;
}

ClaimEditModel A = new ClaimEditModel();
Edit B = new Edit();

谁能推荐一下。

我尝试过这样的事情:

A.Edits =  new Edit(){ edits = B };

【问题讨论】:

  • 您发布的代码将无法编译
  • Edits 是 EditInfo 的列表,您不能将其转换为 Edit 类型...
  • 发布的代码不正确。
  • 类Edit,没有属性edits?!
  • 我想你想映射 EditInfo 类来编辑对象并添加到编辑中。

标签: c# object casting


【解决方案1】:

这是一个令人困惑的问题,但我认为您只想将Edit 的实例添加到A 的列表中。所以你可以这样做:

A.Edits.Add(B);

您代码中的类定义也是无效的,尽管这可能只是您在编写问题时的一个错误。我的回答是基于您对ClaimEditModelreal 定义如下的假设,如果不是,那么您也需要更改它:

public class ClaimEditModel()
{
    public List<EditInfo> Edits = new List<EditInfo>();
    public List<EditRuleError> Errors = new List<EditRuleError>();
    public List<EditRuleError> Warnings = new List<EditRuleError>();
}

【讨论】:

  • @Rahul:是的,但 OP 暗示他的问题在于设置值。 OP 没有提到类定义的问题,因此我们可以假设问题中的定义只是缺少一些代码。或者也许你是对的,OP 也有问题......我想我们只能等待澄清
  • 这是一个猜测而不是答案。应该改为评论。
  • @Reniuz:我不知道......老实说,我认为这是一个相当合理的假设。问题显然集中在设置值上,并且没有提及类定义问题。必须在字里行间阅读关于 SO 的问题并不少见,尤其是来自像 OP 这样没有经验的用户
  • 嗯,我同意这句话。这是我个人的看法,但问题不清楚的 cmets 迫使 OP 编辑​​问题并添加更多细节以获得答案。当问题在回答问题中很清楚时,我们将留下与答案相关的问题。现在,如果您是正确的,OP 会得到它所需要的并接受答案,那么只有从答案中您才会知道问题中的真正问题是什么。我在想,对于正在寻找有关选角问题的答案的未来读者来说,这将是多么令人失望(标题就是这样)
  • @Reniuz:是的,很公平。如果 OP 以某种方式发表评论或接受答案,我会整理问题,以便将来的读者清楚了解
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-28
  • 2022-08-18
  • 1970-01-01
  • 1970-01-01
  • 2017-10-04
  • 1970-01-01
相关资源
最近更新 更多