重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

C# を勉強中なのですが、C# の言語構造というか、プログラミングのスタイルがいまいちわかりません。
 作成したいのは古典的な Windowsフォームアプリケーションです。
 Visual Studio 2019 でフォームとボタンを貼り付けただけの簡単なコードだと、たとえば

namespace WindowsFormsFirst
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
      
    }

    private void button1_Click(object sender, EventArgs e)
    {
      textBox1.Text = "こんにちわ。";
    }
  }
}

のようになります。ところが「やさしいC#」(高橋麻奈 著)だと

class Sample4
{
  public static void Main()
  {
    Form fm = new Form();
    fm.Text = "サンプル";

    PictureBox pb = new PictureBox();
    pb.Image = Image.FromFile("c:\\car.bmp");
    pb.Parent = fm;

    Application.Run(fm);
  }
}
のようになり、Form や PictureBox を動的に生成するのでこれは、すべて手作業ででコーディングするのだと思いますが、それにしても上とはずいぶん違います。
 あとこの本には「C# のプログラムは原則として Main() から始まる」という説明もありますが、であれば最初の IDE が自動的に発行するコードでは Main() はどういう取り扱いになるのでしょう?

A 回答 (2件)

>動的に生成するのでこれは、すべて手作業ででコーディングするのだと思いますが、それにしても上とはずいぶん違います。



デザイナー使わないとそうなりますね。
デザイナーで画面作成するとInitializeComponent()の中に似たような生成コードがあります。

>最初の IDE が自動的に発行するコードでは Main() はどういう取り扱いになるのでしょう?

ちゃんとありますよ。
プロジェクトの中にProgram.csがありませんか?
その中にあるかと。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
> プロジェクトの中にProgram.csがありませんか?
ありました。なるほどそういうわけなのですね。

お礼日時:2021/10/11 13:15

>>すべて手作業ででコーディングするのだと思いますが、それにしても上とはずいぶん違います。



「やさしいC#」は、できるだけシンプルなコードでC#を説明しようとしているのでしょうね。

入門者向けのコードと実際にVisual Studioで生成するコードは、どうしても違ってきてしまいます。
実務では、できるだけ自分のキー入力を減らしたいわけですので、効率重視でソースコードが生成されています。

>>最初の IDE が自動的に発行するコードでは Main() はどういう取り扱いになるのでしょう?

ソリューションエクスプローラをみると、Program.csというファイルが生成されています。この中にMain()がコーディングされています。
これが他のソースと一緒にコンパイルされて、最初に実行されます。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

お礼日時:2021/10/11 13:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!