オブジェクトが本当に文字列である場合のキャストと文字列への変換の比較
質問
これは本当に問題ではありませんが、私は好奇心を持っています。たとえば、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
関連
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法
-
[解決済み] Pythonで整数から文字列に変換する
-
[解決済み] JSON文字列を安全にオブジェクトに変換する
-
[解決済み] JSオブジェクトをJSON文字列に変換する
-
[解決済み] Javaで「ArrayList<String>」を「String[]」に変換する。
-
[解決済み] Java の toString() における StringBuilder と文字列連結の比較
-
[解決済み] Pythonで文字列からbooleanに変換する?
-
[解決済み] C#でURLのクエリ文字列を作成するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み] [Solved] アセンブリ System.Web.Extensions dll はどこにありますか?
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】Visual studio 2019がデバッグ時にフリーズする件
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み] [Solved] .NETでスレッドの終了を待つには?
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。