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;
    }
    // ...
}

virtualまたはabstractメンバーを非公開にすることはできないことに注意してください。

于 2013-03-14T03:32:45.680 に答える