Extensionメソッド
ExtensionメソッドがGenericsに対応しました。
using System; public module Extentions { public PrintAll [T] (this arr : array [T]) : void { foreach (a in arr) Console.Write ($"$a "); Console.WriteLine (); } } def ia = array [1, 2, 3, 4, 5]; ia.PrintAll (); def sa = array ["A", "B", "C", "D", "E"]; sa.PrintAll (); /* 1 2 3 4 5 A B C D E */
ただ、現状の問題点として、
という不具合があります。
派生クラスの場合、Extensionメソッドが呼ばれないのは仕様だったか不具合だったかはちょっと不明です。今、LINQが動かない環境なので・・・(^^;
(追記) 派生クラスでも動くのが正解の模様。