Int32.Parse vs int.Parse

c#, coding-style

Solution

I personally always use full class names for static method calls. This underlines the fact that they are in fact classes that contain pieces of code instead of simplest possible (primitive) data which the aliases imply.

I always use aliases for variables.

Problem

It is a common practice to use C# type aliases instead of CTS System.* types (`int` instead of `Int32` and `string` instead of `String`). However it's not clear to me what to use to call a static method of a type in this case: an alias or a system type. Microsoft does not seem to define any guidelies to use aliases instead of System types. But in MSDN aliases are used for variables and CTS equivalents are used for static calls. For example MSDN: Parsing Numeric Strings ``` int number; Int32.TryParse(value, out number); ``` StyleCop defines the contrary in SA1121 - to always use aliases. So `int.Parse` is ok while `Int32.Parse` is not. This question is a matter of style (in my opinion). But I don't understand reasons to use CTS type for static calls.

Original source