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

Google
Web ufcpp.net

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

目次

キーワード

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

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

namespace CsharpSample
{
  using System;

  class Welcome
  {
    // 初めてC#を学ぶ方々にご挨拶
    public 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("ようこそ。");
    }

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

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

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

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

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

[お問い合わせ](q)