1. When splicing a string, if other types are involved, the first ToString will reduce the boxing operation, and if the string variable is frequently manipulated, the use of StringBuilder is more efficient.
2.tryParse high efficiency relative to parse, TryParse failed to return 0
3.as is not prone to throwing exceptions relative to casts (that is, ()), or null if the source object is null
4.int? When converting to int type, is available?? operator, if the source object is null returns 0
The difference between 5.readonly and Const is that ReadOnly is a running constant, const is a compile-time, and ReadOnly is more flexible than a const can only modify primitive types, enumerations, and string types; const cannot be modified by static. Because it's natural that it's static.
6. Use the 0 value as the default value for the enumeration
Reading notes---157 tips for improving C # programming