这不是一个真正的问题,但我很好奇.当我将一个字符串保存在一个DataRow中时,它会被转换为Object.当我想使用它时,我必须将其转换为ToString.据我所知,有几种方法可以做到这一点,首先是
string name = (string)DataRowObject["name"]; //valid since I know it's a string
Run Code Online (Sandbox Code Playgroud)
另一个是:
string name = DataRowObject["name"].ToString();
Run Code Online (Sandbox Code Playgroud)
我感兴趣的是两者有什么区别?第一个更有效率吗?(这只是一个推测,在我的脑海中ToString()方法是通过一些循环机制实现的,只是把它"变得"更快,但这只是一种"直觉"我有).
有没有更快/更优雅的方式这样做?
任何人都可以为我清除这个吗?
让我们说我们有下面的代码.
var foo = "I am a string";
Object obj = foo;
var bar = obj.ToString();
Run Code Online (Sandbox Code Playgroud)
究竟发生了什么?
巫婆一个人更好吗?
var bar = obj.ToString();var bar = (string)obj;string id = (string)result.Rows[0]["Id"];
Run Code Online (Sandbox Code Playgroud)
上面的代码行返回InvalidCastException。为什么会这样?
但是,如果我将代码更改为此,
string id = result.Rows[0]["Id"].ToString();
那么它就可以工作了。我在前一行代码中做错了什么吗?