所有的,我有一个应用程序需要定期连接和分离多个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
继承可言,当你必须添加方法,如‘添加’,“包含'etc.你自己吗?或者你必须自己按照MSDN中的建议自己去做?我一直在阅读“C#in a Nutshell”,这个问题在这本书中很突出。我知道我在这里失去了一些东西...
我的想法是一样的;为什么不在需要的地方使用'List'?它具有您尝试实现的功能,只要我能看到。 –
2012-03-01 12:10:51
@Killercam,下面的一条评论建议使用Dictionary <>。除非你想通过名称反复“查找”你的连接,否则Dictionary <>会更好,因为你可以指定一个类似于数据库名称的键。 – 2012-03-01 12:33:25
感谢您的帮助。 – MoonKnight 2012-03-01 13:36:44