Cygwin で C#


はじめに

Visual Studio .NET を買わずに、 C# を使ってみるっていうだけです。

準備

Windows Update とかで .NET Framework をインストールしておきましょう。 きっと以下のあたりに入っていると思います。
$SYSTEMROOT/Microsoft.NET/Framework/v1.0.3705
PATH に追加。
PATH=$SYSTEMROOT/Microsoft.NET/Framework/v1.0.3705:$PATH

Hello, world

テストプログラム(hello.cs)
using System;
class Hello{

   static void Main() {
      Console.WriteLine("Hello, world");
   }
}
コンパイル
$ csc hello.cs
実行
$ ./heloo.exe
Hello, world
ヘルプ(ちなみにオプションは - じゃなく / ではじまります)
$ csc /?
Microsoft (R) Visual C# .NET Compiler version 7.00.9466
for Microsoft (R) .NET Framework version 1.0.3705
Copyright (C) Microsoft Corporation 2001. All rights reserved.

                      Visual C# .NET コンパイラのオプション

                        - 出力ファイル -
/out:<ファイル>         出力ファイル名です (既定 : メイン クラスかファースト ファイルを伴うファイルのベース名)。
/target:exe             コンソール アプリケーションをビルドします (既定)。 (短いフォーム: /t:exe)
/target:winexe          Windows 実行可能ファイルをビルドします。 (短いフォーム: /t:winexe)
/target:library         ライブラリをビルドします。 (短いフォーム: /t:library)
/target:module          別のアセンブリに追加できるモジュールをビルドします。 (短いフォーム: /t:module)
/define:<シンボル リスト>条件付きのコンパイル シンボルを定義する (短いフォーム: /d)
/doc:<ファイル>         生成する XML ドキュメント ファイル

                        - 入力ファイル -
/recurse:<ワイルドカード>ワイルドカードの指定に従い、現在のディレクトリとサブディレクトリ内のすべてのファイルをインクルードします。
/reference:<ファイル リスト>指定されたアセンブリ ファイルからメタベースを参照する (短いフォーム: /r)
/addmodule:<ファイル リスト>指定されたモジュールをこのアセンブリにリンクする

                        - リソース -
/win32res:<ファイル>    Win32 リソース ファイルを指定します (.res)。
/win32icon:<ファイル>   出力にこのアイコンを使用します。
/resource:<リソース情報>指定したリソースを埋め込みます。 (短いフォーム: /res)
/linkresource:<リソース情報>このアセンブリに指定されたリソースをリンクします。 (短いフォーム: /linkres)

                        - コード生成 -
/debug[+|-]             デバッグ情報を生成する
/debug:{full|pdbonly}   デバッグの種類を指定します (full が既定値で、実行中のプログラムにデバッガを付加することができます。)
/optimize[+|-]          最適化を有効にする (短いフォーム: /o)
/incremental[+|-]       インクリメンタル コンパイルを有効にする (短いフォーム: /incr)

                        - エラーと警告 -
/warnaserror[+|-]       警告をエラーとして扱う
/warn:               警告レベル (0-4) を設定する (短いフォーム: /w)
/nowarn:<警告リスト>    指定の警告メッセージを無効にする

                        - 言語 -
/checked[+|-]           オーバーフロー チェックの生成
/unsafe[+|-]            unsafe コードの許可

                        - その他 -
@<ファイル>             応答ファイルを読み込み、オプションを追加します。
/help                   この使い方に関するメッセージを表示します。 (短いフォーム: /?)
/nologo                 コンパイル時の著作権メッセージを表示しません。
/noconfig               CSC.RSP ファイルを自動的に含めません。

                        - 詳細 -
/baseaddress:<アドレス> ビルドするライブラリのベース アドレスです。
/bugreport:<ファイル>   'バグ報告' ファイルを作成します。
/codepage:           ソース ファイルを開くときに使用するコードページを指定します。
/utf8output             UTF-8 エンコードでコンパイラのメッセージを出力する
/main:<型>              エントリ ポイントを含む型を指定します (ほかのエントリ ポイントはすべて無視します)。 (短いフォーム: /m)
/fullpaths              コンパイラは絶対パスを生成します。
/filealign:          出力ファイル セクションで使用するアライメントを指定します。
/nostdlib[+|-]          標準ライブラリ (mscorlib.dll) を参照しない
/lib:<ファイル リスト>  参照を検索する追加のディレクトリを指定します。

さいごに

ちょっと C# のプログラムを書いてみたかっただけです。