++C++; // 未確認飛行 C

C#のプログラムの基本構造

目次

キーワード

概要

ポイント
  • C# プログラムは Main から始まります。
  • クラスとか名前空間とかは、今のところおまじない(後々説明)。

C#の簡単なプログラム例

まずは C# を用いて書かれた簡単なプログラムを見てみましょう。

namespace CsharpSample
{
  using System;

  class Welcome
  {
    // 初めてC#を学ぶ方々にご挨拶
    static void Main()
    {
      Console.Write("皆様、始めまして。\n");
    }
  }
}

これからしばらくの間は using とか namespace とか class という部分のことは忘れて、 背景色を変えて強調してある部分だけを注目してください。

C#のプログラムは、すべてこのMainと書いてある部分から始まります 。 このプログラムは、画面(DOSプロンプト中)に“皆様、始めまして。”という文字を表示します。 Console.Writeは文字や数値を画面に出力するためのもの で、詳しくは 「ライブラリ」 で説明します。 また、 //から始まる行はコメント で、プログラムの動作とは関係ありません。詳しくは 「コメント」 で説明します。

ちなみに、 usingnamespaceは 「名前空間」 で、 classは 「クラス」 で、 publicは 「実装の隠蔽」 で、 staticは 「静的変数・静的メソッド」 で、 voidは 「関数」 で説明していきます。

GUIプログラム例

C# では GUI (Graphical User Interface: 要するに、Windowsなどのようにボタンやメニューなどをマウスで操作するようなもの)プログラミングも行えます。

GUI プログラムは文字ベース(CUI: Character User Interfaceという)のプログラムに比べて煩雑な処理が多く、難しいので、ここでは例を挙げるにとどめます。 詳しくは後々 「GUI アプリケーション」 で説明する予定です。

namespace CsharpSample
{
  using System;
  using System.Windows.Forms;
  using System.Drawing;

  /// <summary>
  /// ボタンが1つ付いたウィンドウを作成し、
  /// ボタンを押したときに「ようこそ。」と書かれたメッセージボックスを表示
  /// </summary>
  class WelcomeForm : Form
  {
    Button button;

    WelcomeForm()
    {
      // ウィンドウ内にボタンをひとつ作成
      this.Text       = "サンプルプログラム";
      this.ClientSize = new Size(256, 64);

      this.button = new Button();
      this.button.Location = new Point(80, 16);
      this.button.Size     = new Size(96, 32);
      this.button.Text     = "ここを押せ";
      this.button.Click   += new EventHandler(button_Click);
      this.Controls.Add(this.button);
    }

    // ボタンが押されたときの処理
    private void button_Click(object sender, System.EventArgs e)
    {
      MessageBox.Show("ようこそ。");
    }

    static void Main() 
    {
      Application.Run(new WelcomeForm());
    }
  }
}

このサンプルプログラムでは、ボタンがひとつあるウィンドウが表示され、 ボタンを押すと“ようこそ。”というメッセージが表示されます。

図1: C#によるGUIプログラムの例

ちなみに、 Visual Studio でこのソースをコンパイルする場合、 「Windows フォームアプリケーション」プロジェクトにしてください。 また、コマンドラインで csc を使ってコンパイルする場合、 (ソースファイルの名前を WelcomeForm.cs とすると)以下のようなコマンドでコンパイルします。

csc /r:system.windows.forms.dll /r:system.drawing.dll /t:winexe WelcomeForm.cs

GUIプログラム例2

Ver. 3.0

.NET Framework 3.0 で追加された新 GUI ライブラリ「WPF」版も一応載せておきます。 (C# の文法的にも C# 3.0 に。)

namespace CsharpSample
{
    using System;
    using System.Windows;
    using System.Windows.Controls;

    public class WelcomeWindow : Window
    {
        public WelcomeWindow()
        {
            this.Title = "サンプルプログラム";

            var button = new Button
            {
                Content = "ここを押せ",
            };
            button.Click += (s, e) => { MessageBox.Show("ようこそ。"); };

            this.Content = new Grid { Children = { button } };
        }

        [STAThread]
        static void Main(string[] args)
        {
            var app = new Application();
            app.Run(new WelcomeWindow {
                Width = 300,
                Height = 200,
            });
        }
    }
}

ちなみに、コンパイルは以下のようにして行います。

> csc /t:winexe ファイル名 /r:PresentationFramework.dll /r:PresentationCore.dll /r:WindowsBase.dll

図2: C# 3.0 WPF によるGUIプログラムの例

[お問い合わせ](q)   ぷちカンパ