Force child class to override function of ancestor via parent

前端 未结 3 1194
死守一世寂寞
死守一世寂寞 2020-12-11 05:33

I am writing an algorithm which requires the user to create his own class which inherits from a class defined by me. However, the algorithm requires the user to override the

相关标签:
3条回答
  • 2020-12-11 05:44

    In your class:

    public override bool Equals(object obj)
    {
        throw new System.NotImplementedException();
    }
    
    public override int GetHashCode()
    {
        throw new System.NotImplementedException();
    }
    

    This means that if they don't override it the function will fail by exception. This forces them to override it to get it to work.

    0 讨论(0)
  • 2020-12-11 05:55

    This is what you're looking for. Since your class is abstract you can pretty much do this without any problem.

    public abstract override int GetHashCode();
    

    This despite of it derived from some other class, this makes your sub class must override this method.

    0 讨论(0)
  • 2020-12-11 05:57

    You can create 2 new methods that will be abstract and will be called from GetHashCode and Equals your class.

    Example:

    public abstract ParentClass {
        public abstract int MyGetHashCode();
    
        public override int GetHashCode(){
            return MyGetHashCode();
        }
    
        // same thing for Equals
    }
    
    0 讨论(0)
提交回复
热议问题