0

我遇到了 C# 语法问题

我想稍微抽象一下我的代码,然后我会去做这样的事情:

public abstract class DMO<TDao ,TExtender>
            where TDao : Dao
            where TExtender : Extender<TDao>
{
     abstract Dictionary<TExtender, PropertyInfo> Properties { get; set; }
....
}

只是因为如果我这样做

public abstract class DMO<TDao>
            where TDao : Dao
{
     abstract Dictionary<Extender<TDao>, PropertyInfo> Properties { get; set; }
....
}

我无法使用派生的Extender<TDao>

有什么方法可以让这更简单(我坚持使用.net 3.5,所以我认为我不能为此使用协变)

谢谢

4

1 回答 1

0

只是

public abstract class DMO<T> where T: Extender<Dao> {
    public abstract Dictionary<T, PropertyInfo> Properties {
        get;
        set;
    }
    // ...
}

请注意virtualorabstract成员不能是私有的。

于 2013-03-14T03:32:45.680 回答