gpt4 book ai didi

c# - 列出 2 种不同的对象类型

转载 作者:太空宇宙 更新时间:2023-11-03 21:55:35 25 4
gpt4 key购买 nike

我有 2 个实体,“交易”和“商店”。我想将这些组合到一个列表中,连同一个整数或其他指示类型的东西。

我进行了一些谷歌搜索并提出了一个解决方案,但由于它非常新且令人困惑,我不确定它是否是最佳解决方案。

我使用了一个接口(interface)来执行此操作 - 下面的代码,如果您能就这是否是正确且合理的方法提供一些建议,我将不胜感激。

public interface IBookmarkWrapper
{
int DataType { get; private set; }
object Data { get; private set; }
}

public class DealBookmarkWrapper : IBookmarkWrapper
{
public int DataType { get; private set; }
public object Data { get; private set; }

public DealBookmarkWrapper(Deal deal)
{
deal.ThrowNull("deal");

DataType = 1;
Data = deal;
}
}

并在使用中:

    var list = new List<IBookmarkWrapper>();
list.Add(new DealBookmarkWrapper(deal));

最佳答案

您是否考虑过使用 C# Struct

struct DealBookmarker
{
public Deal Dl;
public Store St;
public int Type;
}
List<DealBookmarker> DBM = new List<DealBookmarker>();

DBM.add(new DealBookmarker)

如有必要,您还可以向 Struct 添加构造函数

与作为引用类型的类不同,结构是值类型,它允许您创建像内置数据类型一样工作的对象,因为它是在堆栈而不是堆上启动的,它将产生性能提升。

在这种情况下在类上使用结构的好处:

  1. 更好的表现
  2. 按值而不是引用传递
  3. 可以有一个构造函数(必须参数化)
  4. 仍然可以实现一个接口(interface)
  5. 还有我最喜欢的 ITS SIMPLER!!!

关于c# - 列出 2 种不同的对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12460065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com