基于相同接口C#问题的不同类型列表

时间:2011-03-16 10:54:11

标签: c# list interface types

我想创建一个可以用于不同类型的界面。像表可以是不同类型的表,例如Integer,String,Date。

以下文章有很大帮助。

ListBox, list of different objects implementing the same interface

List of two different Types in C#

我遇到的问题是我仍然需要一个可以处理不同类型数据的通用接口。我怎么能绕过这个?

我可以将主接口存储作为字符串,并且所有类型都可以转换为?

interface IMytype
{
    string Item { get; set; }
}

class Myint : IMember
{
    public int Item { 
                 get; // code here  IMytype.Item (get) then convert to int
                 set; //  code here to convert to string then IMytype.Item (set) 
                }
}

示例

IMytype testint = new MyInt();

testint.Item = 10;

List<IMytype> testlist = new List<IMytype>();

testlist.add(testint);

我是在正确的轨道上吗?

1 个答案:

答案 0 :(得分:2)

接口是一个合同,说明该类将提供什么行为。它 不应该指定该类将保存的数据。

您希望建立符合特定合同的对象列表 - 您希望它们都以特定方式运行。你会感到困惑的是,这些类都有不同的内部表示 - 一些代表整数,另一些代表浮点数等。

您需要退后一步,并决定您希望这些类实现的共享行为。这将构成您界面的基础。

所以你希望能够获得数据的String表示。这是您的界面的一种方法。

您希望该类能够接收字符串并将其转换为其内部类型吗?另一种方法。

这些类型是否需要Wangle a Flux Capacitor?

有你的界面。

interface IMytype
{
    string GetStringValue ();
    void ReadString ( string value);
    bool WangleFluxCapacitor();
}

首先考虑共享行为。