以下代码抛出编译时错误,如
无法将'string'类型转换为'int'
string name = Session["name1"].ToString();
int i = (int)name;
Run Code Online (Sandbox Code Playgroud)
而下面的代码编译成功并执行:
string name = Session["name1"].ToString();
int i = Convert.ToInt32(name);
Run Code Online (Sandbox Code Playgroud)
我想知道:
为什么第一个代码会产生编译时错误?
2个代码片段之间的区别是什么?
我使用扩展方法检查DataRowField是否为null
public static string GetValue(this System.Data.DataRow Row, string Column)
{
if (Row[Column] == DBNull.Value)
{
return null;
}
else
{
return Row[Column].ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想知道我是否可以使这更通用.在我的情况下,返回类型始终是字符串,但列也可以是Int32或DateTime
就像是
public static T GetValue<T>(this System.Data.DataRow Row, string Column, type Type)
Run Code Online (Sandbox Code Playgroud)