总之,我有一个应用程序需要定期附加和分离多个 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果壳”,而这个问题在这本伟大的书中没有得到解决。
我道歉,我知道我在这里遗漏了一些东西......