オブジェクトが実際には文字列である場合、オブジェクトをキャストして文字列に変換するか、それとも文字列に変換するか 質問する

オブジェクトが実際には文字列である場合、オブジェクトをキャストして文字列に変換するか、それとも文字列に変換するか 質問する

これは実際には問題ではありませんが、興味深いです。たとえば、DataRowに文字列を保存すると、Objectにキャストされます。それを使用する場合は、ToStringにキャストする必要があります。私が知る限り、これを行うにはいくつかの方法があります。まず、

string name = (string)DataRowObject["name"]; //valid since I know it's a string

もう一つは:

string name = DataRowObject["name"].ToString();

両者の違いは何なのか興味があります。最初の方が効率的でしょうか? (これは単なる推測です。私の考えでは、ToString() メソッドはループ メカニズムによって実装されており、単にキャストするだけで「より高速になる可能性がある」のですが、これは単なる「直感」です)。

これを行うより高速/エレガントな方法はあるでしょうか?

誰かこれについて説明してくれませんか?

ベストアンサー1

これら 2 つのメソッドは、異なる目的のために用意されています。任意のオブジェクトの ToString メソッドは、そのオブジェクトの文字列表現を返すことになっています。キャストはまったく異なり、前述のように、「as」キーワードは条件付きキャストを実行します。「as」キーワードは基本的に、「そのオブジェクトがこの型の場合、そのオブジェクトへのこの型の参照を取得する」という意味ですが、ToString は「そのオブジェクトの文字列表現を取得する」という意味です。結果は同じになる場合もありますが、前述のように、これら 2 つは異なる目的のために存在するため、互換性があるとは決して考えないでください。キャストが目的の場合は、常にキャストを使用し、ToString は使用しないでください。

からhttp://www.codeguru.com/forum/showthread.php?t=443873

参照http://bytes.com/groups/net-c/225365-tostring-文字列キャスト

おすすめ記事