使用 System.ComponentModel.TypeConverter。
var conv = System.ComponentModel.TypeDescriptor.GetConverter(typeof(int));
var i1 = (int)conv.ConvertFrom("123");
使用System.Convert.ChangeType():
var i2 = (int) Convert.ChangeType("123", typeof (int));
使用目标类型的Parse/TryParse方法:
var i3 = int.Parse("123"); // or TryParse
有没有任何准则或经验法则来判断何时使用哪种方法在 .NET 基本数据类型之间进行转换(尤其是从字符串到其他数据类型)?
System.ComponentModel.NullableConverter
。System.Convert
无法处理可空类型(将string "123"
转换为类型int?
),而他们没有将其构建到现有的转换器中,而是又创建了一个新的 :) - CodingWithSpike