前提
C#でオブジェクト指向のプログラムを作成しております。
参考資料:1週間でC#の基礎が学べる本
実現したいこと
下記のエラーを解消させたい。
プログラムで複数のエントリーポイントが定義されております。 エントリ ポイントを含む型を指定するには、/main でコンパイルしてください。
該当のソースコード(1つめ)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Sample401 { class Program { static void Main(string[] args) { Person p1, p2; p1 = new Person(); p2 = new Person(); p1.name = "yamada"; p1.age = 19; p2.SetAgeAndName("sato", 23); p1.ShowAgeAndName(); p2.ShowAgeAndName(); } } }
ソースコード(2つめ)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Sample401 { class Person { //名前(フィールド) public string name = ""; //年齢(フィールド) public int age = 0; //情報表示 public void ShowAgeAndName() { Console.WriteLine("名前:{0} 年齢:{1},name,age"); } //情報設定 public void SetAgeAndName(string name, int age) { this.name = name; this.age = age; } } }
試したこと
エラーの原因はMainメソッドが2つ以上あることが原因のようですが、作成したプログラムにおいては1つしかない認識です。
どのようにすればこのエラーが解消されるのでしょうか。
アドバイスいただければ幸いです。
補足情報(FW/ツールのバージョンなど)
Microsoft Visual Studio Community 2022 (64 ビット) - Current
Version 17.3.6
ターゲットフレームワーク(対象フレームワーク):.NET Framework4.7.2
ターゲットフレームワークは何ですか?
質問に書かれていないコードがあるはずですが、それも書いてください。
ターゲットフレームワークは何ですか?
「ソースコード(2つめ)」はどこにどのような形で書かれているのですか? 同じソリューション内の別プロジェクトのクラスファイル?
質問に書かれていないコードがあるはずですが、それも書いてください。
→2つめのソースコードも追加させていただきました。
勉強不足で申し訳ありませんが、ターゲットフレームワークというのは.Netなどのことでしょうか。
使用しているのは、「.NET Framework」です。
> ターゲットフレームワークというのは.Netなどのことでしょうか。
プロジェクトのプロパティを開くとそれに書かれています。
「ソースコード(2つめ)」はどこにどのような形で書かれているのですか? 同じソリューション内の別プロジェクトのクラスファイル?
→ありがとうございます。プログラム2つともVS2019で作成しており、同じプロジェクト内に2つプログラムを作成しております。
回答になっておりますでしょうか…
> ターゲットフレームワークというのは.Netなどのことでしょうか。
プロジェクトのプロパティを開くとそれに書かれています。
→ありがとうございます。確認したところ、対象のフレームワークは「.NET Framework4.7.2」になっておりました。
Main を新しく作ってはいけません。
プロジェクトを新規作成した際に Main が無かったとしたら、それは実行できないアセンブリか、または見えないところに Main があります。
Main を新しく作ってはいけません。
プロジェクトを新規作成した際に Main が無かったとしたら、それは実行できないアセンブリか、または見えないところに Main があります。
→仰る通り、プロジェクトを作成した際、Mainメソッドはありませんでしたので勝手に追加してしまいました。プロジェクト作成時に自動的にMainメソッドを表示させるようにするにはどのような方法がありますでしょうか。
> プログラム2つともVS2019で作成しており
VS2022 ではなかったのですか?
> 同じプロジェクト内に2つプログラムを作成しております
「2つプログラム」とはどういう意味ですか? たぶん質問に書いてないコードがあるのだと思いますが、全部書いてください。
ターゲットフレームワークは何ですか? ・・・3 回目の質問
.NET 6.0 でコンソールアプリを作ると、Main は出てきませんが(隠れている)、それに Main のある「該当のソースコード(1つめ)」を追加したのではないかと想像。
作成すべきプロジェクトを間違えているんだと思います。本の通りに作成してみましょう。
それでもわからなければ、プロジェクトの作成手順を回答者に伝わるよう詳細に書きましょう。
書くのはここではなく、編集ボタンを押して質問を編集します。
VisualStudio 2022だと、プロジェクトのフォルダー下に .cs ファイルを置くだけでプロジェクトに自動で追加されてしまったかと思います。Mainメソッドがあるファイルを移動するなり削除するなりして重複しないようしてみてください。
まあ、質問の体裁としては既にご指摘があるよう、その問題に至った手順を詳しく記載すべきですね。
> プログラム2つともVS2019で作成しており
VS2022 ではなかったのですか?
→失礼しました。2022です。
> 同じプロジェクト内に2つプログラムを作成しております
「2つプログラム」とはどういう意味ですか? たぶん質問に書いてないコードがあるのだと思いますが、全部書いてください。
→わたしが作成したプログラムは既に記載させていたただいてるものになります。他にはプロジェクト作成時に自動的に作成されているプログラムもあります。そちらでよろしければ掲載させていただきます。
ターゲットフレームワークは何ですか? ・・・3 回目の質問
→プロジェクトの[プロバティ]で確認したところ、「ターゲットフレームワーク」という文言はありませんでした。その代わり、「対象フレームワーク」というものがありましたので、そちらのことなのかと思い、先程記載させていただきました。
> 他にはプロジェクト作成時に自動的に作成されているプログラムもあります。そちらでよろしければ掲載させていただきます。
全部載せてください。でないと分かりません。
「ターゲットフレームワーク」=「対象フレームワーク」です。
> 対象のフレームワークは「.NET Framework4.7.2」になっておりました。
上記は質問欄を編集して追加情報として追記願います。
回答1件
あなたの回答
tips
プレビュー