xxx.tostring()和(string)xxx有什么区别?

kac*_*apy 3 c# asp.net

下面两个字符串方法的区别是什么?

string str1 = dr["RAGStatusCID"].ToString();
string str2 = (string)dr["Description"];
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 5

这取决于具体是什么dr.第一个调用ToString方法,每个对象可以在索引器上覆盖dr["RAGStatusCID"].第二投射dr["Description"]变量为字符串.

如果我们使用我们的心灵感应技巧并假设它dr是一个SqlDataReader,那么这两个表达式几乎完全相同,只是如果该Description列不是字符串,则强制转换可能会在运行时抛出异常.