これは実際には問題ではありませんが、興味深いです。たとえば、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 は使用しないでください。