ジェネリックの型引数の制約条件にインターフェースを使ったら、
Inconsistent accessibility: constraint type 'ISavable' is less accessible than 'ReactiveSavableList' [Assembly-CSharp]
とのエラー。
コードは下記の通り
// ISavable
interface ISavable
{
void Save();
}
// ReactiveSavableList
public class ReactiveSavableList<T> where T:ISavable
{
}
Interfaceはインスタンス化できない
→コンストラクタがprivate?
→ReactiveSavableListのpublicなコンストラクタとの間に、アクセシビリティのエラーが出ている?
と思ったので、下記の通りに修正したらエラー取れました。
以下、修正後のコード。
// ISavable
abstract public class ISavable
{
public void Save()
{
}
}
// ReactiveSavableList
public class ReactiveSavableList<T> where T:ISavable
{
}
命名はAbstract◯◯みたいに変えると良さそうです。
※追記(2018-01-11 21:06)
上のエラーが出ているコードでも、interfaceをpublicにすれば解決します。
YuneKichiさんありがとうございました!