Я пытаюсь использовать некоторые базовые абстрактные классы для Transaction, Order и OrderCollection.TransactionCog наследует Transaction и OrderCollection наследует List, а OrderCogCollection наследует OrderCollection и OrderCog наследует Order.TransactionCog должен иметь член OrderCogCollection.
Я пытаюсь использовать Transaction, чтобы иметь абстрактное свойство OrderCollection, чтобы TransactionCog должен переопределить это свойство, но вместо этого использовать тип OrderCogCollection.Конечно, сейчас я хочу дать мне TransactionCog, который не реализует унаследованный абстрактный член.
Я пытаюсь сделать это так, чтобы, если у меня был виджет или механизм для заказа следующего, я наследовал от баз и заставлял меня переопределять свойство с соответствующей коллекцией Order'ItemName'Collection.Одна из причин этого заключается в том, что каждая коллекция Order'ItemName'Collection будет иметь некоторые свои собственные специальные функции и свойства, которые другие не будут иметь.Я просто не могу понять, где мне нужно, чтобы эта способность работала, если это возможно.
public abstract class Transaction
{
public abstract OrderCollection<Order> Orders
{ get; set; }
}
public abstract class Order
{
private int _id;
public int ID
{
get { return _id; }
set { _id = value; }
}
}
public abstract class OrderCollection<T> : System.Collections.Generic.List<T>
{
abstract public int GetIntValue(int test);
}
class OrderCog : TestWindowsFormCsharp.Classes.BaseClasses.Order
{
public OrderCog()
{
}
}
public class OrderCogCollection<OrderCog> : TestWindowsFormCsharp.Classes.BaseClasses.OrderCollection<OrderCog>
{
public OrderCogCollection()
{
}
public override int GetIntValue(int test)
{
return test;
}
}
class TransactionCog : TestWindowsFormCsharp.Classes.BaseClasses.Transaction
{
private OrderCogCollection<OrderCog> cogs;
public TransactionCog()
{
}
public override OrderCogCollection<OrderCog> Orders
{
get { return cogs; }
set { cogs = value; }
}
}