据我所知,至少有3种方法可以在.NET中转换数据类型:
使用System.ComponentModel.TypeConverter
var conv = System.ComponentModel.TypeDescriptor.GetConverter(typeof(int));
var i1 = (int)conv.ConvertFrom("123");
Run Code Online (Sandbox Code Playgroud)
使用System.Convert.ChangeType():
var i2 = (int) Convert.ChangeType("123", typeof (int));
Run Code Online (Sandbox Code Playgroud)
使用目标类型的Parse/TryParse方法:
var i3 = int.Parse("123"); // or TryParse
Run Code Online (Sandbox Code Playgroud)
是否有任何指导方针或经验法则何时使用哪种方法在.NET基础数据类型之间进行转换(特别是从字符串到其他数据类型)?
我有一个类没有输入参数的公共方法.
public partial class MyClass: System.Web.UI.MasterPage
{
public void HelloWorld() {
Console.WriteLine("Hello World ");
}
}
Run Code Online (Sandbox Code Playgroud)
我想调用HelloWorld() 方法到我的另一个类
public partial class ProductType_Showpt : System.Web.UI.Page
{
protected void ChkChanged_Click(object sender, EventArgs e)
{
MyClass master =(MyClass) this.Master;
master.GetType().GetMethod("HelloWorld").Invoke(null, null);
}
}
Run Code Online (Sandbox Code Playgroud)
但它抛出了这个例外
Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)