Is this is good way to check for null?
How often do you change parameter names? How often does the code run?  Under any normal distribution of those, you should go with a minor code efficiency gain over a programmer efficiency gain.  

On the other hand, if you (for some bizarre reason) change the parameter name almost every time the code runs, the tradeoff is probably worth it.

But just remember, that whether or not the string matches the actual parameter name, it should still let you find exactly which parameter was null so long as there isn't anywhere else in that function which throws an ArugmentNullException with the same string.