(C#,VS2008)在我正在研究的程序中,我有很多对象都具有ID并实现IComparable,因此各种对象的List <> - s可以通过ID轻松搜索.由于我讨厌复制/粘贴代码,我认为我会将这些功能抽象到基类,如下所示:
using System;
namespace MyProg.Logic
{
abstract class IDObject : IComparable<IDObject>
{
private int miID;
public int ID
{
get { return miID; }
set { miID = value; }
}
public IDObject(int ID)
{
miID = ID;
}
#region IComparable<IDObject> Members
int IComparable<IDObject>.CompareTo(IDObject other)
{
return miID.CompareTo(other.miID);
}
#endregion
}
}
Run Code Online (Sandbox Code Playgroud)
我看到的缺点是每个继承它的两个单独的类可以直接使用.CompareTo()进行比较,我希望强制每个继承自IDObject的类只能与完全相同类的其他类相比较.所以我希望弄清楚如何做到这一点,并想出了这个
using System;
namespace MyProg.Logic
{
abstract class IDObject : IComparable<T> where T : IDObject
{
private int miID;
public int ID
{
get { …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个需要从excel电子表格中获取数据的VS 2008 C#程序.问题是用户运行Office 2007和Office 2010的混合.所以我试图在正确的方向上获得一些指示,以编程方式从xls中获取数据,而不关心用户的哪个版本的办公室已安装.
奖励积分如果它将在两种环境中编译(VS2008/Office2007和VS2008/Office2010)