小编Dro*_*ogo的帖子

如何使一个抽象基类IComparable不比较两个单独的继承类?

(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)

.net c# generics inheritance

8
推荐指数
1
解决办法
3054
查看次数

与Office无关的访问.xls文件中的数据的方法?

我正在开发一个需要从excel电子表格中获取数据的VS 2008 C#程序.问题是用户运行Office 2007和Office 2010的混合.所以我试图在正确的方向上获得一些指示,以编程方式从xls中获取数据,而不关心用户的哪个版本的办公室已安装.

奖励积分如果它将在两种环境中编译(VS2008/Office2007和VS2008/Office2010)

c# excel visual-studio-2008

3
推荐指数
1
解决办法
200
查看次数

标签 统计

c# ×2

.net ×1

excel ×1

generics ×1

inheritance ×1

visual-studio-2008 ×1