Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Вопрос по Mono  (Прочитано 1308 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн NoobsEnslaver

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Вопрос по Mono
« : 08 Октября 2011, 15:06:36 »
Доброго времени суток всем, вот какая у меня проблема -
Почему то у меня в MonoDevelop при работе на C# какой то необычный синтаксис LINQ запросов. Обычные,самые простые, запросы выдают ошибку(Пространство System.Linq подключено). Может мне нужно установить какой то пакет(библиотеку)? Подскажите плз.

Пользователь решил продолжить мысль 09 Октября 2011, 08:01:38:
Такс...немного я тут подразобрался, вот что получается -
ошибки которые я получаю в Моно- такие же как при работе с более ранней версией фреймворка(в которой нет Linq вызовов, на винде тестил), но в то же время проги с Linq, если заставить студию лепить CIL версии фреймворка 3.5(ниже нельзя т.к. linq тока с 3.5 появился), то на Linuxе под моно эти проги будут работать(т.е JIT понимает этот синтаксис,значит всётаки linq тут уже есть). Скачал так же gsharp оболочку,неочемная конешн, но она тоже понимает linq ! Вот теперь я что то вообще запутался, что моно надо то?
« Последнее редактирование: 09 Октября 2011, 08:01:38 от NoobsEnslaver »

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Вопрос по Mono
« Ответ #1 : 10 Октября 2011, 08:56:07 »
Что-то все молчат, поэтому выскажу свое мнение.
Я думаю, что Linq в моно сейчас нет, т.к. это прибамбас 3.0.
Предкомпилированный вариант с linq не содержит каких-то фичей от 3.0 - это же набор элементарных инструкций. Поэтому и выполняется в моно, но исходник компилироваться не будет, т.к. пакетов нет.
« Последнее редактирование: 10 Октября 2011, 08:58:58 от alexander.pronin »

Оффлайн Gengza

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Вопрос по Mono
« Ответ #2 : 10 Октября 2011, 08:58:43 »
очень странно. в mono все вполне не плохо с linq запросами.
давайте что ли ваш код, будем смотреть.

Оффлайн NoobsEnslaver

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Вопрос по Mono
« Ответ #3 : 10 Октября 2011, 21:33:40 »
using System;
using System.Linq;
namespace test
{
class tClass
{
static void Main()
{
int[] abc={1,2,3,4,5};
var smth = from n in abc
select n;
foreach(var b in smth)
Console.Write(b);
}
}
}
Ух как я рад что хоть кто то откликнулся, а то я думал уже придется кодить на винде,а потом перезагружаться и в Ubuntu и смотреть что получилось))

Александр, ты наверное говоришь про версию языка? Тут да, я не знаю какая версия, но фрейм в настройках написан 3.5, думаю и язык где то такой же версии должен быть.А LINQ какраз кста с 3.5 версии языка и поддерживается(в студии проверял).
Так я бы и смирился бы с мыслью что моно еще не дошло до линку, но я скачал gsharp (какая то оболочка, толи вообще хз что, но на ней короч тоже на c# писать можно), так он понимает linq!
« Последнее редактирование: 10 Октября 2011, 21:51:53 от NoobsEnslaver »

Оффлайн Gengza

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Вопрос по Mono
« Ответ #4 : 12 Октября 2011, 00:40:26 »
вот этот кусок кода выдает Пространство System.Linq подключено?
знаешь как в студии референсы добавлять?
в монодевелоп подобно. просто сейчас под рукой его нет что бы сказать точнее.

Оффлайн NoobsEnslaver

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Вопрос по Mono
« Ответ #5 : 12 Октября 2011, 08:28:28 »
Спасибо генгза за совет, но я не знаю про рефы ничего(( погуглил - тож не разобрался. Вот кста какую ошибку он мне выдает -
An implimentation of 'Select' query expression pattern could not be found.Are you missing 'System.Linq' using directive or 'System.Core.dll' assembly reference?
Документация не дает ответа на это ((

Оффлайн Gengza

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Вопрос по Mono
« Ответ #6 : 12 Октября 2011, 09:04:21 »
Ладно, вечерком попробую посмотреть на монодевелоп.

Но в кратце, в студии, открываешь Solution Explorer, и в проекте есть папка Reference. По ней правой кнопкой мыши и Add Reference..
там выбираешь System.Linq.dll
я подозреваю что в моноДевелоп должно быть аналогично. Возможно меню по другому называется.


вот что на stackoverflow пишут:

Цитировать
You may need to right-click on your project in the solution view, do Options, Build, General, and set your target runtime to Mono / .Net 3.5.

Then you can right-click references, do Edit References, and add a reference to System.Core to your project.

Оффлайн NoobsEnslaver

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Вопрос по Mono
« Ответ #7 : 12 Октября 2011, 15:51:14 »
Ураа!! Спасибо! Действительно, подключил Реф и сразу в подключении библиотек всплыл linq! Спасибо еще раз.

 

Страница сгенерирована за 0.021 секунд. Запросов: 22.