2011-03-16 2 views
1

다른 유형으로 사용할 수있는 인터페이스를 만들고 싶습니다. 열이 다른 유형 (예 : Integer, String, Date) 일 수있는 테이블과 같습니다.동일한 인터페이스를 기반으로하는 여러 유형의 목록 C# 문제

다음 기사는 큰 도움이되었습니다.

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); 

나는 바른 길에 있습니까?

+2

아마도 반환 유형은 객체 여야합니다. – HadleyHope

+1

Re : 문자열로 /에서 변환하는 아이디어. 문자열로 처리 할 공통 코드는 무엇입니까? –

+0

@ 대니얼 나는 모든 데이터를 저장하는 일반적인 방법을 생각하고있었습니다. 주요 아이디어는 나중에 datagridview에 바인딩하는 코드를 다시 작성하는 것입니다, 그러나 나는 복잡해지기 때문에 가상 모드에서 datagridview를 사용하려고 생각하고 있습니다. –

답변

2

인터페이스는 클래스에서 제공하는 동작을 설명하는 계약입니다. 이 클래스가 보유 할 데이터를 지정하지 말아야합니다.

특정 계약서를 준수하는 개체 목록을 작성하려는 경우 - 특정 방식으로 모든 동작을 수행하기를 원합니다. 이 클래스들은 모두 다른 내부 표현을 가지고 있다는 사실에 혼란스러워집니다. 일부는 int를 나타내며 다른 것은 내부 표현을 나타냅니다.

이 클래스가 구현할 공유 동작을 결정해야합니다 . 이것은 귀하의 인터페이스의 기초가 될 것입니다.

따라서 데이터의 String 표현을 가져올 수 있기를 원합니다. 이것이 귀하의 인터페이스를위한 하나의 방법입니다.

클래스가 문자열을 받아서 내부 형식으로 변환 할 수있게하려면? 또 다른 방법.

이러한 유형은 플럭스 축전기를 감싸 야합니까?

인터페이스가 있습니다.

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

먼저 공유 동작을 고려하십시오.

+0

많은 감사합니다 나는 문자열 대신 T generic arguments를 사용할 수 있습니다. –

+0

기본적으로 목록의 목록을 원하지만 나중에 문자열, 정수의 혼합 목록이 필요합니다. –

+0

예, 목록을 원하기 때문에 목록을 만들지는 않습니다. 문제를 해결하기 위해 목록을 작성하고 있습니다. 해결하려는 문제는 무엇입니까? 데이터 유형에 대해 생각하지 말고, 당신이 그들과 함께하고 싶은 일에 대해 생각하십시오! –

관련 문제