Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于同一接口C#问题的不同类型列表_C#_List_Interface_Types - Fatal编程技术网

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

基于同一接口C#问题的不同类型列表,c#,list,interface,types,C#,List,Interface,Types,我想创建一个可以用于不同类型的接口。就像一个表,其中的列可能是不同类型的,例如整数、字符串、日期 下面的文章很有帮助 我的问题是,我仍然需要一个可以处理不同类型数据的通用接口。我怎样才能避开这件事 我是否可以将主接口存储作为字符串,并将所有类型转换为字符串和字符串 interface IMytype { string Item { get; set; } } class Myint : IMember { public int Item {

我想创建一个可以用于不同类型的接口。就像一个表,其中的列可能是不同类型的,例如整数、字符串、日期

下面的文章很有帮助

我的问题是,我仍然需要一个可以处理不同类型数据的通用接口。我怎样才能避开这件事

我是否可以将主接口存储作为字符串,并将所有类型转换为字符串和字符串

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);
IMytype testint=new MyInt();
试验项目=10;
List testlist=新列表();
testlist.add(testint);

我在正确的轨道上吗?

接口是一个契约,它规定了类将提供什么行为。它不应该指定类将保存哪些数据

您希望建立一个符合特定契约的对象列表—您希望它们都以特定的方式运行。这些类都有不同的内部表示,有些表示int,有些表示float等等,这让您感到困惑

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

所以您希望能够获得数据的字符串表示形式。这是接口的一种方法

interface IMytype
{
    string GetStringValue ();
    void ReadString ( string value);
    bool WangleFluxCapacitor();
}
您希望类能够接收字符串并将其转换为其内部类型吗?还有另一种方法

这些类型的电容器需要更换磁通电容器吗

这是你的界面

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

首先考虑共享行为。

也许您的返回类型应该是objectRe:转换为字符串或从字符串转换为字符串的想法。通用代码将如何处理字符串?@Daniel我正在考虑一种存储所有数据的通用方法。主要思想是稍后重写代码以绑定到datagridview,我正在考虑在虚拟模式下使用datagridview,因为它太复杂了。@HadleyHope通过对象列表做到了这一点,它要简单得多感谢许多感谢我认为我可以使用T通用参数基本上我想要一个列表,但后一个列表将是字符串、整数或日期等的混合列表。是的,但是你创建列表并不是因为你想要一个列表——你创建这个列表是因为你想要解决一个问题。你想解决的问题是什么?不要考虑数据类型,想想你想用它们做什么!实际上,我解决了关于对象的问题,只是创建了一个对象列表,然后使用getype的基于类型的条件方法在
bool
的+1中运行良好。我需要在我们的公司代码中的某个地方写上这句话,只是为了好玩。:)