Have you ever written code like this?
How many domain-specific Value Type classes (you care about equality but not identities) have you been creating every project? The question of should I use the "new" keyword or a static .Parse() method to create them is always a coding consistency problem.
What if I tell you that you can do this in C#:
Simple and clean. Here's how: