1

同じクラス名からクラスのコンストラクターを作成しようとするとき。次のようなエラーがスローされるのはなぜですか。

" Error: 'StaveProcessor': member names cannot be the same as their enclosing type"

コード :

namespace ImageProcessing
{
    class StaveProcessor
    {
        public Bitmap stave;

        public StaveProcessor(Bitmap image) //constructor
        {
            stave = image;
        }
    }
}

これを解決してコンストラクタを作成するにはどうすればよいですか?

ps: 私自身は専門家ではないと考えてください。ばかげた質問をすることをお許しください。ありがとうございました

4

2 に答える 2

5

あなたが提供したコードには問題がありません(コンパイルされます)。次のようなことをすると、例外が表示されます。

class StaveProcessor
{
    // can't have this method with this name (note the void, it's not a constructor)
    public void StaveProcessor(Bitmap image)
    {
        stave = image;
    }
}
于 2013-07-07T06:03:22.897 に答える
1

@hirosht コードにエラーはありません。このページを参照してください。同じ問題がありました。

答えは(私が思うに)コンストラクターをvoidやintなどの型で宣言したことです。

于 2013-07-07T06:21:21.673 に答える