【问题标题】:How IEnumerable Can Store Data [closed]IEnumerable 如何存储数据
【发布时间】:2014-01-27 11:32:08
【问题描述】:

像 IEnumerable 或 IQuerable 这样的接口如何将数据存储到自身中?
或者例如这个 Tables 去哪里 `IQueryable?
以及我怎样才能为自己拥有这样的界面?

public Interface IMyNumerator<T>  
{

}

IMyNumerator<int> mynumbers;

如何用一些 Int 值填充 mynumbers ??

【问题讨论】:

    标签: c# ienumerable iqueryable


    【解决方案1】:

    接口本身不包含数据。尽管在使用集合时您可能会将 IEnumerable 视为一种类型,但底层对象始终是实现此接口的特定类型。

    实际包含您的数据的对象可以是实现该接口的任何类型。 请参考:

    如果您想实现自己的 IEnumerable 版本,请从接口继承。尝试在 codeproject 上搜索“实现 IEnumerable 的初学者教程”;-)

    【讨论】:

    • 感谢您的链接;我正在搜索它
    • 好吧,我很想给你链接,但我只是在吸了太久之后才开始在这里积极贡献;-)顺便说一句....我找到的链接是:codeproject.com/Articles/474678/…
    • 其实 System.Linq 对我很感兴趣;如果你删除它;您不再可以将列表函数用于 IEnumerable。由于扩展!我得到了 80% ;我要研究更多;还是谢谢。
    【解决方案2】:

    接口从不存储数据。一个实现。每当您的代码看到IEnumerable 类型的对象时,它的实际动态类型就是别的东西,例如ListIterator 左右。如果您想拥有自己的类型实现IEnumerable,您可以这样做。通常,您将拥有一个实现集合枚举器的嵌入式(私有)类。

    【讨论】:

      【解决方案3】:

      接口定义好接口。

      您可以将其视为定义合同,解释如何使用特定概念。接口后面是一个实际的实现,例如一个数据库连接。

      在计算机科学中,界面是与软件交互的点

      为了让它更简单一点,在硬件领域考虑一下。

      USB 定义了一个接口,它具有特定的形状,因此可以插入特定的插头,并且它具有如何与 USB 设备通信的“协议”。

      您可以拥有这个“界面”的背后,几乎可以使用任何设备。外汇。相机或存储设备。

      【讨论】:

      • 我通常使用“合同”这个短语。如中,该接口定义了您在使用它时签署的合同。合同如何履行(实施)并不重要。
      • @AdamHouldsworth 这就是我要找的词 :)
      【解决方案4】:

      这是一个非常令人困惑的问题,但我还是会尝试。

      IEnumerable 是一个只描述公共方法/属性的接口,它不描述数据是如何存储的。

      此接口的实现者负责存储数据,并且可以以任何适合需要的结构存储数据。

      您可以通过自己实现或定义您使用的另一个接口来拥有类似的接口。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-02
        • 1970-01-01
        • 1970-01-01
        • 2022-01-09
        • 2012-05-09
        • 2021-03-11
        相关资源
        最近更新 更多