Что это возьмет для добавления поддержки Objective C общеязыковой среде выполнения.NET?

Вы хотите изменить ключевые значения. Вы можете сделать это вручную следующим образом:

select a.*
     , max(case b.key when 'Name' then b.value end) Name
     , max(case b.key when 'DOB' then b.value end) DOB
  from TableA a
  left join TableB b
    on a.id = b.table_a_id
  group by a.id
      , a.title
      , a.date
      , a.etc

Приведенный выше запрос будет работать, если у вас есть только один из каждого атрибута для данной записи в Таблице A, в противном случае он даст вам наибольшее значение. Если вам нужно несколько значений, вы можете сгенерировать последовательность для каждого атрибута, как показано в подвыборе с именем B ниже:

select a.ID
     , b.Seq
     , a.Title
     , a.Date
     , a.Etc
     , max(case b.key when 'Name' then b.value end) Name
     , max(case b.key when 'DOB' then b.value end) DOB
  from TableA a 
  left join (select @Seq:=case
                       when @aid=b.Table_A_ID and @key=b.key
                       then @Seq + 1
                       else 1
                     end Seq
                   , @aid:=b.Table_A_ID Table_A_ID
                   , @key:=b.key `Key`
                   , b.value
                from tableB b
               order by table_a_id, b.key) b
     on a.id = b.table_a_id
  group by a.id, a.title, a.date, a.etc, b.Seq;

Это отличается от ответа @ GMB тем, что он возвратит каждый атрибут только один раз с нулями в строках, где для каждого атрибута меньше значений, тогда как решение @ GMB вернет произведение CROSS всех атрибутов для данной строки.

13
задан Ned Batchelder 9 November 2008 в 17:37
поделиться

6 ответов

Objective C является строгим надмножеством C. По сути, это имеет много функций как указатели, которые переводят плохо на.NET. Конечно, может случиться так, что - на практике - большинство программ Objective C записано таким способом, которым они также скомпилировали бы против более строго определенной версии спецификации языка, которая была более строгой, но могла быть переведена в безопасный код.

Принимая дело обстоит так, часть отправки метода Objective C является естественным пригодным для динамических возможностей ДОЛЛАРА. Я на самом деле рассмотрел создание такого порта.

6
ответ дан 2 December 2019 в 00:04
поделиться

Не должно быть никаких проблем, размещающих Objective C ontop CLR. Можно, вероятно, реализовать время выполнения ontop ДОЛЛАРА, или в худшем случае реализуют собственное. Это все еще существенно отличается от компиляции любых существенных кодовых баз Objective C для CLR, так как подавляющее большинство кода Objective C, которым Вы, вероятно, будете интересоваться, зависит от платформ Apple.

В конце Вы или должны будете повторно реализовать их, или, Objective C моста к платформам.NET, которые позволили бы Вам писать код Objective C, но он не будет использовать платформу, совместимую ни с каким существующим кодом Objective C. Вы могли бы хотеть смотреть на Cocotron, который является перекрестной средой компиляции, которая позволяет разработчикам Mac перемещать некоторые приложения Objective C в Windows. Это должно обеспечить довольно хороший пример времени выполнения Objective C для Windows, а также потенциально служить несколькими основами, необходимыми для создания разумного объема кода Objective C применимым, после того как Вы поднимаете компилятор, который может предназначаться для.NET

4
ответ дан 2 December 2019 в 00:04
поделиться

Если Вы имеете в виду способность записать приложения.NET с помощью синтаксиса Objective C и способности использовать структуры данных от платформ Основы (таких как NSArray), это тривиально (хотя длинный) для выполнения. Это не отличалось бы, чем добавляющая поддержка любого языка.

Однако то, что делает разработку Objective C большой на Mac, не является синтаксисом, это - другой API, как который обеспечивает Apple:

В дополнение к этим API, которые было бы намного более трудно реализовать, также необходимо думать о вещах как поддержка Привязки и Значение ключа, Наблюдающее, который было бы намного намного более трудно реализовать в CLR.

3
ответ дан 2 December 2019 в 00:04
поделиться

Нет действительно нет..NET компилирует в IL (или CIL или MSIL), который является в основном машинным кодом для виртуальной машины. Можно программировать в IL как Вы, делают в блоке (не, что я видел, что любой делает это). Если бы у Вас были опыт, знание и сообразительность, то там не была бы без проблем, пишущий Objective C в компилятор IL. Черт, существуют даже языки функционального программирования (F#) для.NET. Помимо обменивающихся сообщениями возможностей и библиотек, это не слишком отличается от C#, VB.NET, и т.д.

Какая потрясающая идея! Objective-C# или некоторые такой.

Вот то, где Вы могли бы запустить: Wikiepedia на IL Microsoft.

1
ответ дан 2 December 2019 в 00:04
поделиться

Как другие сказали, да это возможно. Является ли это хорошей идеей (особенно "в духе кросс-платформенной разработки"), другой вопрос. Снова, как был отмечен, язык не очень без его библиотек. Так как Objective C теперь используется почти исключительно в Mac / контекст iPhone, способность написать код в нем в Windows не собирается покупать Вас очень, если они - Ваши цели.

Кроме того, уже можно записать Objective C в Windows - я верю gcc, который обычно используется с XCode, будет компилятор Obj C в Windows также, а также GnuStep.

Который просто уезжает, существует ли преимущество для рабочего Objective C по .NET? Существуют некоторые хорошие функции Objective C, которые не найдены на Ваших типичных языках .NET. Лично мне действительно нравится маркировка имени метода параметров. Однако я не думаю, что достаточно сделать стоящим принести его. Большинство вещей, к которым Objective C способен, C#, имеет свои собственные решения. Теперь, если только они смягчились бы при отказе реализовать параметры, передаваемые по имени...

1
ответ дан 2 December 2019 в 00:04
поделиться

Используя NObjective bridge вы можете работать с существующими классами Objective-C на C# или создавать новые. Также после финального релиза 'Visual Studio 2010' и '.NET 4' я добавлю поддержку DLR для NObjective.

.
1
ответ дан 2 December 2019 в 00:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: