I have two classes: UNumber and Number (which inherits from UNumber).

Both use the same addition, although Number also looks at the sign of the Numbers.

I want that the addition of Number gets used if one of the objects for the addition method is a Number.

It seems to me that the override Add method of Number gets used if the Add method of an overriding member gets called. (underlying Type Number)

I currently have this code:

UNumber unumber = new(); Number number = new(); number.Add(number); // Wanted output: "Add Method of Number" // Result: "Add Method of Number" number.Add(unumber); // Wanted output: "Add Method of Number" // Result: "Add Method of Number" unumber.Add(number); // Wanted output: "Add Method of Number" // Result: "Add Method of UNumber" // The whole issue lies here. The simple Add Method of UNumber gets called // instead of the complex Add Method of Number which works fine for UNumbers and Numbers unumber.Add(unumber); // Wanted output: "Add Method of UNumber" // Result: "Add Method of UNumber" UNumber1 unumber2 = number; number.Add(number); // Result: "Add Method of Number" class UNumber { public uint value; public UNumber(uint numberin = 0) { value = numberin; } public virtual void Add(UNumber numberin) { value += numberin.value; Console.WriteLine("Add Method of UNumber"); } } class Number : UNumber { public bool positive; public Number(uint numberin = 0, bool positivein = true) { value = numberin; positive = positivein; } public override void Add(UNumber numberin) { // Cannot cast object as this throws an error, // I know better workarounds but no neat method to solve this. Add(new Number(numberin.value)); } public void Add(Number numberin) { uint add1 = value; uint add2 = numberin.value; if (positive != numberin.positive) { if (value < numberin.value) { value = numberin.value - value; } else { value -= numberin.value; } positive = !positive; } else { value += numberin.value; } Console.WriteLine("Add Method of Number"); } }

wohlstad's user avatar

wohlstad

36k18 gold badges79 silver badges112 bronze badges

user31962013's user avatar

New contributor

user31962013 is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.