最新の Microsoft C# 4 拡張機能のサポートが一段落したためだろうか,Mono チームは最近,独自の言語拡張に手を出している。彼らが現在試しているのは,文字列補完と複数戻り値のサポート,という2つの機能だ。
文字列補完 は実際には String.Format のショートカットである。数値のプレースホルダを含む文字列を引数として関数を明示的にコールする代わりに,次例のようにプレースホルダ中の式を参照して文字列を構築するものだ。
var a = 'Hello {name} how are you?';
この例は Miguel de Icaza 氏によるもので,文字列がダブルクォートではなくシングルクォートで囲まれている点に注意が必要だ。この機能の潜在的な問題については,Python や Ruby のユーザがより詳しく知っていると Miguel 氏は考えている。そのため氏は現在,彼らからのフィードバックを募集している。
2つめの言語拡張は タプル (tuple) のサポート である。これは複数戻り値とも呼ばれる。氏のパッチを用いれば,タプルを返却する関数を使って,関数のコールとタプルのアンパックを1行で記述することができる。
Tuple<string, string, string, int, string> ParseUri (string url);
(user, password, host, port, path) = ParseUri (url);
タプルの生成と返却の記述は,見かけ上は代入式のようだ。Miguel 氏はさらにこれを拡張して,配列スライス,列挙,DictionaryEntry のような古い形式のタプルをサポートするよう検討中である。