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 Equals and GetHashCode functions from the C# standard libraries.
Can I force the class inherited from my class to implement the GetHashCode and Equals functions?
public abstract int GetHashCode();
Writing this in my base class is not an option, as my base class inherits GetHashCode from it's parent, where it is implemented already.
You can create 2 new methods that will be abstract and will be called from
GetHashCode
andEquals
your class.Example:
This is what you're looking for. Since your class is abstract you can pretty much do this without any problem.
This despite of it derived from some other class, this makes your sub class must override this method.
In your class:
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.