I know the = operator can’t be overloaded, but there must be a way to do what I want here:
I’m just creating classes to represent quantitative units, since I’m doing a bit of physics. Apparently I can’t just inherit from a primitive, but I want my classes to behave exactly like primitives — I just want them typed differently.
So I’d be able to go,
Velocity ms = 0;
ms = 17.4;
ms += 9.8;
etc.
I’m not sure how to do this. I figured I’d just write some classes like so:
class Power
{
private Double Value { get; set; }
//operator overloads for +, -, /, *, =, etc
}
But apparently I can’t overload the assignment operator. Is there any way I can get this behavior?
It sounds like you should be using a struct rather than a class… and then creating an implicit conversion operator, as well as various operators for addition etc.
Here’s some sample code:
(As a side-note… I don’t see how this really represents a velocity, as surely that needs a direction as well as a magnitude.)