2012-03-12 17 views
0

C#での明示的な型キャスト対(実際には、.NETに数週間のために移動)と私は、次のような状況に出くわしたSystem.convert.ToStringは()私はC#で、小規模なプロジェクトに取り組んでいた

str = System.Convert.ToString(
         (sheetRange.Cells[rcnt, ccnt] as Excel.Range).Value2); 

上のコードでは、Excelシートを文字列に読み込もうとしていました。最初は、私は、「可能System.String」を入力するタイプ「System.Double」のオブジェクトをキャストすることができません旨、ランタイムエラーになった後、

str = (string) ((sheetRange.Cells[rcnt, ccnt] as Excel.Range).Value2); 

をやってみました。 InValidExceptionがキャッチされました。

私は両者の違いを調べるために検索しましたが、それほど多くは得られませんでした。私はこれと絡み合っています。だから、私の質問は次のとおりです

1)明示的な型変換とsystem.convertの違いは何ですか?これはすべてのタイプに適用されますか?

2)これはJavaと同じですか、それが同等であれば?

文字列でキャストしている間に正確に何を表示するかを更新しました。 Doubleを文字列にキャストしているうちに例外が発生しています。しかし、Doubleを文字列に変換する。今私の質問は、それが文字列にダブル変換することができますが、それは文字列にダブルキャストを許可していない理由です。私は自分自身を明確にしたいと思う。

シンプルなものであればご容赦ください。タイプキャストに関するいくつかの基本的な点を見ていただければ幸いです。

ありがとうございます。

+1

*ランタイムエラーを知って良いでしょう*、よりExcel.Range'の一環として、詳細情報を更新してください – V4Vendetta

+0

一つ 'における問題のように思えます何かを変換する関数であり、もう一つは違法なキャストです。 –

+0

@ V4Vendetta質問を更新しました。オブジェクトを文字列に変換できませんでした。 –

答えて

4

質問の最初の部分に答えて:キャスティングの変換は2つの異なるものです。 私はJavaの開発者ではありませんが、Javaで同じと思われます。

MSDNはこれを詳細に答える記事があります:Casting and Type Conversions (C# Programming Guide)

+0

だから私が求めているのは第三のカテゴリーに入る。互換性のない型であるため、system.convert.toString()を使用する必要があります。私は正しいですか? –

関連する問題