Differences between revisions 8 and 9
| Deletions are marked like this. | Additions are marked like this. |
| Line 5: | Line 5: |
|
== C# tips == いつか別ペイジにします === リフレクション === ==== コンストラクタの呼び方 ==== たとえば、Base <- Derived という派生関係があったとして、Derivedのインスタンスをランタイムで作製するには、 {{{ using System; //... Base base = (Base)Activator.CreateInstance(typeof(Derived)); }}} もちろん、コンパイルタイムにDerivedがわかっていれば良いのだけれど、ユーザー入力を元にインスタンシエイトするクラスが変わるときにはとても便利。 |
.NET Framework / CLI
CLI (Common Language Infrastructure) および.NET Framework、Mono、DotGNU Portable .NET、そしてCLI用の言語C#、C++/CLI、IronPythonなどの話。
Contents
C# tips
いつか別ペイジにします
リフレクション
コンストラクタの呼び方
たとえば、Base <- Derived という派生関係があったとして、Derivedのインスタンスをランタイムで作製するには、
using System; //... Base base = (Base)Activator.CreateInstance(typeof(Derived));
もちろん、コンパイルタイムにDerivedがわかっていれば良いのだけれど、ユーザー入力を元にインスタンシエイトするクラスが変わるときにはとても便利。
ヘルプ
Mono でプログラミングしているとMSDNが手元にない状態になるので、ここからみましょう。
オフィシャルの .NET Framework クラス ライブラリ
特によく使う System.Windows.Forms 名前空間
仕事では一番頻繁に覗いてます DOBON.NET .NET Tips (VB.NET, C#, Visual Studio...)
CLIでプログラムを組んでいて一番困るのは、Dispose関連でしょうか。 Disposeをどのように実装すべきかの指針はこちらが参考になりそうです。
環境
CLI環境 (という言葉がどうなのかは置いておいて) は.NET Frameworkだけではないですよ。こちらはともにフリーの環境です。
Mono
Mono Project による、CLI環境
- Novellがサポートしているそうな。
- 主な対応言語は
- C# まあ、もちろん
- Java、Boo (静的型付けのPythonみたい)、Nemerle、VB、Python、Oberon、PHP、Object Pascal が大きく書いてある
- マイナーどころでは、#Smalltalk、DeltaForth、DotLisp
Mono 感想
(gblog から転載)
Mono をインストールしてみました。Monoって言ってもいろいろありますが、いわゆる、.NET Framework 互換環境の Mono です。
から1.2.6を落としてきいの、インストールしいので、まったく問題なく動きます。 公式サイトのチュートリアルをやってますが、いい感じですね。 チュートリアルでは、プログラムの実行は
mono hello.exe
と書けと書いてますが、HelloWorld程度なら、Gtk# を使わないものはそのまま
hello.exe
で動くみたい。 さて、IDEはどれがいいのだろう。
SharpDevelop
Mono用にIDEとして、SharpDevelop 2.2 を落としてきました。
これはすごい。UIは VisualStudio 以外の何者でもない。VisualStudio を使い慣れた人なら、何の問題もなく開発できるでしょう。むしろ、フォームのデザイナ・コードの切り替えがタブになっているので、逆に使いやすいともいえます。「おぉぉ!」という感嘆の声が止まりませんでした。
日本語入力も問題なさそう。ソースコードに日本語を含めると、UTF-8で保存しますか、と聞かれるので yes と答えておけば、問題なく表示された。デバッグも出来るし、これさえあればC#での開発は十分、という感じ。
とにもかくにも、C#、Mono、Winforms を使えば、Windows、Linux、MacOS X のマルチプラットフォームで開発が簡単に、しかもフリーソフトウェアだけで出来るわけで。いい時代になったものです。
DotGNU Project
GNUプロジェクトが推進する DotGNU Project。
CLI環境 DotGNU Portable .NET を作っています。
言語
CLI環境用の言語たち
Nemarle
公式サイト: Nemarle Homepage
- Wikipediaを見ていて知った言語。どうやらこんな言語らしい: (公式サイトの文言を適当に拾いました)
- 高級言語
- 静的型付け
- 関数型プログラミング
- オブジェクト指向
- 手続き型プログラミング
- C#風文法
- メタプログラミング
- .NET か Mono で動くようです。
- あとはC#なみのインテリセンスがあれば…C#の強みってつまり、ソースコードを書くときに (VB並みの) 支援をVisualStudioから得られることだと思うのだよな。
F#
- .NET 対応の OCaml
- ぐぐりにくいので、リンク集
- Visual Studioの補完機能はとてもうまく動いているらしい。
- 他、いろいろと悪いことを書いていましたが、とてもよく出来ているらしい... (ちゃんと使ったことないです) Visual Studio 2010 に統合されるらしいので、期待。
