1. ホーム
  2. c#

オブジェクトが本当に文字列である場合のキャストと文字列への変換の比較

2023-09-23 04:48:28

質問

これは本当に問題ではありませんが、私は好奇心を持っています。たとえば、DataRow に文字列を保存すると、それは Object にキャストされます。それを使用したいときは、ToString にキャストする必要があります。私が知る限り、これを行うにはいくつかの方法があります。

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

であり、もうひとつは

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

両者の違いは何なのかに興味があります。前者の方が効率的なのでしょうか?(これは単なる推測です。私の頭の中では、ToString() メソッドは何らかのループ機構によって実装されており、単にそれをキャストする方が速いかもしれません。) ただし、これは私の直感に過ぎません。

これを行うより速く/よりエレガントな方法はありますか?

どなたかこれを解決していただけませんか?

どのように解決するのですか?

この2つは、異なる目的のために 目的を持っています。オブジェクトのToStringメソッドは メソッドは、そのオブジェクトの文字列表現を返すことになっています。 表現を返すことになっています。キャスティング とは全く異なり、'as' キーワードは条件付きキャストを行います。 という単語は条件付きキャストを実行します。 が言われています。as' キーワードは は基本的に、次のように言います。 この型からこのオブジェクトへの参照を得る。 オブジェクトがこの型である場合、そのオブジェクトへのこの型の参照を取得します。 は "そのオブジェクトの文字列表現を取得する" と言っています。 という意味です。結果は同じになるかもしれません。 場合によっては同じ結果になることもありますが、この2つは この2つは決して互換性がないと考えてください。 なぜなら、私が言ったように、それらは異なる目的のために存在するからです。 異なる目的のために存在するからです。もし、あなたが を使うべきでしょう。 キャストであって、ToStringではありません。

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

参照 http://bytes.com/groups/net-c/225365-tostring-string-cast