这个设计是个好主意 - 接口和抽象类

Nat*_*n W 3 c# generics abstract-class interface

我希望能够做如下的事情:

//non-generic
var MyTable = new Table();
string name = MyTable.Name;
IEnumerable<String> rows = MyTable.Rows;

//generic
var MyTableGeneric = new Table<MyType>();
string name = MyTableGeneric.Name;
IEnumerable<MyType> rows = MyTableGeneric .Rows;
Run Code Online (Sandbox Code Playgroud)

会是这样的事情:

http://img81.imageshack.us/img81/427/diagramcm3.jpg

或者这会更好:

http://img301.imageshack.us/img301/4136/presentation1nh9.jpg

对不起,如果这很难理解我想要的东西,基本上我有两个对象将共享comman属性,除了那些将是通用的行集合.我想以最干净的方式做到这一点.

对不起我的蹩脚图表,用powerpoint制作:)

Cam*_*and 8

我会说第二种设计更好.更少的项目和更容易的继承路径.

第一个设计有不必要的接口,除非你实现了实现接口的其他东西,但是不从基类继承,否则你不需要这些接口.