some simple types like int, string, .... it's easy to see that they are ValueTypes or RefrenceTypes. But I want to know if there is a way to distinguish?
All structures, enumerations, and native types are value types.
At runtime, you can check the following:
Type type = typeof(TypeName); if (type.IsValueType) { //... }
Strings are not value types.
Here is a list of the most commonly used value types :
:
.