Все, у меня есть приложение, которое должно регулярно подключать и отключать несколько баз данных 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
, когда вам нужно добавить такие методы?как «Добавить», «Содержит» и т. д. Или вы должны сделать это самостоятельно, как предложено в MSDN ? Я читал «C # в двух словах», и этот вопрос стоит без вниманияв этой великой книге.
Прошу прощения, я знаю, что здесь что-то упущено ...