1

私はC#にかなり慣れていないので、修正方法がわからないというエラーに遭遇しました。タイトルにあるように、オーバーロードなしのメソッド「ToString」は1つの引数のエラーを取ります。私はここで他の質問を見てきましたが、それらは私がやろうとしていることよりも複雑です。メッセージボックスに表示しようとしている簡単な方程式があり、次のようになります。

Y = C + I + E + G;

MessageBox.Show(ToString(Y));   

数式内のすべての変数は整数であり、intとして格納され、テキストボックスから取得されます。私はYouTubeのニューボストンのチュートリアルからC#を学んでいますが、この問題はそこでは見ていません。また、C#には200を超えるビデオがあり、まだそれほど多くはありません。エラーデバッグに関する提案をいただければ幸いです。

4

5 に答える 5

13

正しい構文は次のとおりです。

MessageBox.Show(Y.ToString());  
于 2012-04-20T19:44:32.553 に答える
4

やってみました

MessageBox.Show(Y.ToString());  
于 2012-04-20T19:44:39.270 に答える
3

ToStringは演算子ではなく、オブジェクトクラスのメソッドです。

于 2012-04-20T19:45:23.387 に答える
3

少し説明します。C#では、すべてにToString()、の文字列表現を与えるために呼び出すことができるメソッドがありますObject。を呼び出しているのでToString(Y)、ToStringメソッドに間違った数の引数を使用していると文句を言います。一般に、他の人が指摘しているように、オブジェクトをaとして表す方法Stringは、を呼び出すことY.ToString()です。

作成した任意のクラス内でメソッドをオーバーライドできるToString()ため、そのクラスのToString()メソッドを呼び出すと、より便利なが返されることに注意してくださいString

于 2012-04-20T19:50:11.847 に答える
2

上記の投稿は、問題の解決策をほぼカバーしています。発生するエラーについて:変数を参照せずに呼び出すとToString(Y)、コンパイラーは現在のコンテキストを調べます。現在のコンテキストは、デフォルトで継承するクラスであり、詳細Objectについてはこのリンクを参照してください。したがって、これを行うとToString、コンパイラーはObject.ToString()パラメーターを受け取らない(オーバーライドされていない場合)を調べます。そのため、次のようになります。

オーバーロードメソッド'ToString'は1つの引数を取りませんエラー

于 2012-04-20T19:50:29.127 に答える