Передача extension method в качестве значения
От: nikov США http://www.linkedin.com/in/nikov
Дата: 11.09.09 11:48
Оценка:
Почему-то не компилируется такой код:
module Program
{
  Main() : void
  {
    def s = "";
    Foo(s.Extension)
  }
  
  Foo(_ : string -> void) : void { }
  
  public Extension(this _x : string, _y : string) : void { }
  
}


В то же время аналогичный код на C# компилируется и работает:
using System;

static class Program
{
  static void Main()
  {
    var s = "";
    Foo(s.Extension);
  }
  
  static void Foo(Action<string> _) { }
  
  public static void Extension(this string _x, string _y) { }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.