C#3.0のアレ。Nemerleでもサポートされました。
using System;
module Extentions {
public ToInt32 (this s : string) : int {
Int32.Parse (s)
}
}
def s = "123";
Console.WriteLine ("s = {0}", s.ToInt32 ());
構文はC#3.0同様、引数の前にthisを付けるようです。あと、Nullableもサポートされた見たいですが、使い方が分からない(コンパイルエラーになる)のでサンプル待ちです。(^^;
ちなみにNemerleにおけるC#3.0相当機能の実装状況は、
- LINQ
- Monoの人がオープンソースSystem.Query.dllをこさえて、macroを作成中らしい。
- 型推論
- 実装済み。C#3.0より強力。
- 拡張メソッド
- 実装済み。
- ラムダ式
- 実装済み。
- イニシャライザ
- 未実装。
- 匿名型
- 未実装。
- 暗黙型付け配列
- 型推論に含まれる。