데이터 필드를 나타내는 객체가 있다고 가정 해 봅시다.이 객체에는 이름, 유형, 값, 길이라는 속성이 필요합니다. 여기에 객체가 있습니다 :일반 객체의 일반 목록
class Field<T>
{
public string Name { get; set; }
public Type Type
{
get
{
return typeof(T);
}
}
public int Length { get; set; }
public T Value { get; set; }
}
제네릭을 사용했습니다. 특정 유형의 값만 코드의 사용자에게 할당 할 수 있기를 원합니다.
이제는 필드 목록을 만들 때 문제가 있습니다.
List<Field<object>>
과 같은 목록을 만들면 목록의 특정 필드에 값을 할당 할 수 있으며 유형을 쿼리 할 때 '개체'가 표시됩니다.
그 목록에 문자열이 들어있는 필드가 거의없고, 정수, 날짜 및 심지어 사용자 지정 개체가 들어있는 필드를 원할 수도 있습니다.
Generics는 다음과 같은 좋은 솔루션입니까? 그? 그렇다면 어떻게 구현할 것인가? 그렇지 않은 경우 더 좋은 방법은 무엇입니까?
은 --- 편집 ---
그냥 좀 더 배경 추가 :
가 1. 내가 필드의 목록을 할 수 있습니다, 그리고 각 필드는과 같이, 서로 다른 데이터 유형을 개최한다 :
List<Field<object>> lst = new List<Field<object>>();
lst.Add(new Field<string>());
lst.Add(new Field<int>());
lst.Add(new Field<SomeObjectFromMyApp>());
2. 나중에 나는이 오브젝트를 조회해야합니다, 그리고보기 자동 해당 속성 루프에서, 그런 일 :
foreach(Field<object> fld in lst)
{
Type t = fld.Type;
//do some other stuff
}
정확히 무엇을 원하십니까? 나는이 문장을 이해하지 못한다. "그 목록에는 문자열이 들어있는 필드가 거의없고, 정수, 날짜, 심지어는 사용자 지정 개체까지 포함 할 수도 있습니다. 필드의 목록이 있습니다. – Florian
정확히 말하면, 서로 다른 필드 목록이지만 해당 목록의 각 필드에는 다른 데이터 유형 (int, string 또는 사용자 정의 객체)이있을 수 있습니다. –