Все, у меня есть приложение, которое необходимо регулярно подключать и удалять несколько баз данных SQL. Я хочу создать класс, который содержит все эти базы данных в виде коллекции, которая может быть переименована. Для этого я унаследовав от ICollection
, но есть некоторые thinkg я не понимая:Основы класса .NET 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# в двух словах », и этот вопрос является тем, что выделяется без внимания в этой замечательной книге.
Прошу прощения, Я знаю, что мне что-то не хватает ...
Моя мысль такая же; почему бы вам просто не использовать «Список' где нужно? Насколько мне известно, у него есть функции, которые вы пытаетесь реализовать. –
@ Killercam, один комментарий ниже предлагает использовать словарь <>.Если вы не захотите «найти» ваше соединение по имени снова и снова, словарь <> будет лучше, потому что вы можете указать такой ключ, как имя базы данных. –
Спасибо за помощь. – MoonKnight