1. ホーム
  2. c#

[解決済み] メンバ名を内包する型と同じにすることはできない C# Japan

2023-05-22 12:06:05

質問

以下のコードはC#で、Visual Studio 2010を使用しています。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;

namespace FrontEnd
{
    class Flow
    {
        long i;
        private int x,y;
        public int X
        {
            get;set;
        }
        public int Y
        {
            get;set;
        }

        private void Flow()
        {
            X = x;
            Y = y;
        }

        public void NaturalNumbers(int x, int y)
        {
            for (i = 0; i < 9999; i++)
            {
                Console.WriteLine(i);
            }
            MessageBox.Show("done");
        }
    }
}

上記のコードをコンパイルすると、このようなエラーが発生します。

Error: 'Flow': メンバ名は囲む型と同じにすることはできません。

なぜですか、どうすれば解決できますか。

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

クラス名と同じメソッド名は コンストラクタ . コンストラクタは戻り値の型を持ちません。だから、として正しい。

private Flow()
{
   X = x;
   Y = y;
}

というように関数名を変更することもできます。

private void DoFlow()
{
   X = x;
   Y = y;
}

しかし、このコード全体は私には何の意味もありません。