나는 '다른'객체에 대한 참조를 저장하기 위해 List<AnotherClass>
을 사용하는 여러 클래스 (A, B, C, ...)를 가지고 있습니다. 그러나 '다른'클래스 A의 각 다릅니다, B, C. 그래서 클래스 A에 포함 된 List<Class_X>
클래스 B는 List<Class_Y>
클래스 C는/검색 추가/삭제 (등) 기능을 구현하는 대신파생 된 목록에서 다른 클래스의 객체 처리
List<Class_Z>
를 포함 포함 (A)에, B는 C가 위의 코드를 사용하여 List<T>
public class ListRef<T>: List<T>
{
protected ListRef<T> ListOfObjects = null;
protected string name = null;
public ListRef<T>
{
ListOfObjects = new ListRef<T>();
}
}
에서 클래스 ListRef<T>
을 만들기 위해 나에게 논리적 인 것 (이것은 내가 원하는에 적합한 코드?) 내가 제공 할 수 있습니다 방법을 모른다 올바른 클래스 (Class_X, Class_Y, Class_Z) 대체/지정 <T>
은 ListRef를 사용할 각 클래스 (A, B, C)의 생성자에 있습니다.
public A() : base<Class_X>
{
}
어떻게 객체의 어떤 종류의 ListOfObjects에 저장해야하는 클래스 내에서 지정할 수 있습니다 : 클래스 A의 생성자에서
내가 좋아하는 뭔가를 쓰고 싶다? 내가 ListOfObjects이 개인 대신보호 을 선언하고 싶은대로
내가
public A()
{
ListOfObjects = new ListRef<Class_X();
}
쓰기 안함 난 그냥 추가 할 수 있도록
내부 Listref, 삭제, 개체 검색. 그래서 실제로 이러한 클래스 (Class_X, Class_Y, Class_Z)를 사용하지는 않습니다.
현재 제가
public class A
{
private List<Class_X> ListOfObjects = null;
A()
{
ListOfObjects = new List<Class_X>();
}
public void Add(string Name)
{
Class_X Object = new Class_X(Name);
ListOfObjects.Add(Object);
}
public void Delete(Class_X Object)
{
ListOfObjects.Remove(Object);
}
}
있고 클래스 (Class_Y 사용) B 및 클래스 C에 대해 (class_Z 사용)에 대한 코드의 동종. 나에게 그것은 하나의 클래스 ListRef를 사용하여 추가 및 삭제 작업을 수행하고 내가 사용하는 모든 클래스에 대한 목록을 유지하는 것이 논리적 인 것처럼 보인다. 에 대한
public interface ISomeOtherClass
{
}
public class Class_X : ISomeOtherClass
{
}
public class Class_Y : ISomeOtherClass
{
}
public class BaseClass<T> where T : ISomeOtherClass
{
public ListRef<T> OtherObjects { get; set; }
}
public class A : BaseClass<Class_x>
{
}
public class B : BaseClass<Class_Y>
{
}
List에서 상속 받고 클래스에서 서브 클래스를 사용하는 이유는 무엇입니까? 이것은 꽤 순환적인 것으로 보인다. –
이 수업을 어떻게 사용하는지 보여 주면 도움이 될 것입니다. 그래서 우리는 당신이하고 싶은 것을 더 잘 이해할 수있게 될 것입니다. – CoderDennis
Inside Listref 나는 단지 객체를 추가, 삭제, 검색 할 수 있기를 원한다. 그래서 실제로 이러한 클래스 (Class_X, Class_Y, Class_Z)를 사용하지는 않습니다. 현재 가지고 있습니다 공용 클래스 A { 개인 목록 ListOfObjects = null; A() { ListOfObjects = new List (); } public void Add (문자열 이름) { Class_X 개체 = 새 Class_X (이름); ListOfObjects.Add (Object); } public void Delete (Class_X Object) { ListOfObjects.Remove (Object); } } –
SoftwareTester