すべて、複数の SQL データベースを定期的にアタッチおよびデタッチする必要があるアプリケーションがあります。これらすべてのデータベースを反復可能なコレクションとして保持するクラスを作成したいと考えています。これを行うには、から継承してICollection
いますが、理解していない考えがあります:
class SqlDataBases : ICollection<SqlDb>
{
private List<SqlDb> dbColl;
public SqlDataBases()
{
dbColl = new List<SqlDb>();
}
// Add an index to the collection.
public SqlDb this[int _nIndex]
{
get { return (SqlDb)dbColl[_nIndex]; }
set { dbColl[_nIndex] = value; }
}
// et al.
}
public class DbEnumerator : IEnumerator<SqlDb>
{
// ...
}
class SqlDb
{
private string strMdfFullPath;
private string strLdfFullPath;
private bool bIsAttached;
public SqlDb(string _strMdfFullPath, string _strLdfFullPath, bool _bIsAttached)
{
this.strMdfFullPath = _strMdfFullPath;
this.strLdfFullPath = _strLdfFullPath;
this.bIsAttached = _bIsAttached;
}
}
ICollection
私の質問は、「「Add」、「Contains」などのメソッドを自分で追加する必要があるのに、なぜ継承するのですか?それとも、 MSDNで提案されているように、自分でこれを行う必要がありますか?私は「C# in a一言で言えば」そしてこの質問は、この素晴らしい本で取り上げられていないことで際立っています.
申し訳ありませんが、ここで何かが足りないことはわかっています...