Constrained type alias
Your recent questions give me impression, that you are purposely trying to to find new ways to mock C# syntax. :) You know this saying from MSDN: "code is read way more often, than it is written"? I think you have to keep this in mind, when designing those things. I would definitely have a WTF-moment, if I were to see int Age = (AdultAge)43 in code. I then would have to go and look for AdultAge and Constrain implementations in order to figure out what is going on there. I would rather have this:

Validator.ValidateEmail("test@example.com");


or this:

reference.ThrowIfNull();


or even this:

var age = (Age)21;
if (age.IsAdult) ...


Because those options are easy to read and easy to understand. They feel natural. Your code does not. It's clever, but it is obscure and it is easy to get wrong:

int Age1 = (AdultAge)43; // OK
var Age2 = (AdultAge)43; // OK?
double Age3 = (AdultAge)43.1; // OK?
var Age4 = String.Format("Age: {0}", (AdultAge)43); // OK?