Странность
От: Аноним  
Дата: 07.07.10 13:59
Оценка:
Так работает:

using Nemerle.Collections;
using Nemerle.Text;
using Nemerle.Utility;

using System;
using System.Collections.Generic;
using System.Console;
using System.Linq;

module Program
{
  Main() : void
  {
    WriteLine(array["abcd", "efgh"].ToArray());
    _ = ReadLine();
  }
}


Если закоментировать строчку using System.Linq;, то компилятор начинает ругаться на метод ToArray() — не определен для типа array. В чем он конечно прав. Непонятно почему, если использовать System.Linq, то все компилируется? Я ожидал ошибки компиляции в любом случае.
Re: Странность
От: _nn_ www.nemerleweb.com
Дата: 07.07.10 14:07
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Если закоментировать строчку using System.Linq;, то компилятор начинает ругаться на метод ToArray() — не определен для типа array. В чем он конечно прав. Непонятно почему, если использовать System.Linq, то все компилируется? Я ожидал ошибки компиляции в любом случае.


System.Array не содержит метода ToArray.
Поэтому и не компилируется.

System.Linq.Enumerable содержит метод расширение ToArray, и поэтому компилируется.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Странность
От: catbert  
Дата: 07.07.10 17:25
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Если закоментировать строчку using System.Linq;, то компилятор начинает ругаться на метод ToArray() — не определен для типа array. В чем он конечно прав. Непонятно почему, если использовать System.Linq, то все компилируется? Я ожидал ошибки компиляции в любом случае.


Знаю-знаю эту проблему
Объяснение дал _nn_.
Вам надо просто использовать .NToArray(). Где-то полгода назад все методы стандартной библиотеки Nemerle по работе с IEnumerable, которые дублировались в Linq, были соответственно переименованы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.