Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.156] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 348 349 [350] 351 352 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#5236
,
|
|
|
|
В чем его принципиальные отличия от шарпа? Синтаксис? |
|
Сообщ.
#5237
,
|
|
|
|
непонравилась необходимость typeof(наверняка специальная конструкция)
![]() ![]() class method GenericMethodTest.DoSwap<T>(left, right : T); ... Console.WriteLine('Type: {0}', typeof(T)); // ... Добавлено а так, в целом, вроде получше делфи Добавлено хотя дальше его(typeof) не используют: ![]() ![]() case aClass type of TMyXYZClass: TMyXYZClass(aClass).DoSomething; TMyOtherClass: TMyOtherClass(aClass).DoSomethingElse; else raise new Exception('Неправильная ссылка на класс'); |
|
Сообщ.
#5238
,
|
|
|
|
Цитата D_KEY @ В чем его принципиальные отличия от шарпа? Синтаксис? Да фиг знает. Для этого надо знать два языка, чтобы сравнить. Я подозреваю, что скорее всего синтаксис, языки одного уровня. Добавлено Цитата korvin @ непонравилась необходимость typeof(наверняка специальная конструкция) Это вывод наименования типа объекта, просто функция. |
|
Сообщ.
#5239
,
|
|
|
|
да и вообще, по логике вещей typeof(Integer) должен выдать что-то вроде System.Type, ведь т.к. Integer сам является типом, то тип типа -- метатип (простите за тавтологию =))
Добавлено Цитата Romkin @ Это вывод наименования типа объекта, просто функция. а, WriteLine только строки принимает? ну все равно тогда логичней было бы T.Name Добавлено Цитата korvin @ хотя дальше его(typeof) не используют: ![]() ![]() case aClass type of ... а блин, не заметил слово type, значит недоделали немного язык (имхо) |
|
Сообщ.
#5240
,
|
|
|
|
Цитата korvin @ а, WriteLine только строки принимает? ну все равно тогда логичней было бы T.Name Вряд ли. Просто представление объекта в виде строки - это не обязательно его тип. А хотели вывести именно наименование типа. А T.Name - это явно не тип, а может быть чем угодно. Цитата korvin @ да и вообще, по логике вещей typeof(Integer) должен выдать что-то вроде System.Type, ведь т.к. Integer сам является типом, то тип типа -- метатип (простите за тавтологию =)) Метод выполняется после инстанцирования, поэтому выдаваться должен именно integer. Добавлено Цитата korvin @ а блин, не заметил слово type, значит недоделали немного язык (имхо) И в чем недоделка? Указано, что сравниваются типы, а не экземпляры. Хочешь убрать? А как тогда значения сравнивать, а не типы? |
|
Сообщ.
#5241
,
|
|
|
|
Цитата Romkin @ языки одного уровня. Что-то много в .NET таких языков. Для JVM как-то не создают клоны Java. |
|
Сообщ.
#5242
,
|
|
|
|
Цитата D_KEY @ Что-то много в .NET таких языков. Для JVM как-то не создают клоны Java. Python? |
|
Сообщ.
#5243
,
|
|
|
|
Цитата Romkin @ Цитата D_KEY @ Что-то много в .NET таких языков. Для JVM как-то не создают клоны Java. Python? Разве Python и Java языки одного уровня? Вот Python, Groovy и Ruby - да. |
|
Сообщ.
#5244
,
|
|
|
|
Цитата D_KEY @ Разве Python и Java языки одного уровня? Я не говорил об одном уровне, я говорил о языке для JVM. Просто в JVM ты в любом случае приходишь к java, а в .NET C# просто один из языков. И языков разного уровня там полно. |
|
Сообщ.
#5245
,
|
|
|
|
Цитата Romkin @ Просто в JVM ты в любом случае приходишь к java Нет. Ты точно также компилишь со своего языка в байткод JVM, как и для .NET Цитата а в .NET C# просто один из языков. И языков разного уровня там полно. Точно так же, как и для JVM. Java, Scala, clojure, groovy и т.п. Ну и питоны с руби всяческие. |
|
Сообщ.
#5246
,
|
|
|
|
Цитата Romkin @ Просто в JVM ты в любом случае приходишь к java, а в .NET C# просто один из языков. Да нет, не просто один из языков. В .NET всё делается для C#, и к нему так же все неизбежно приходят. Вернее будет сказать, что и там, и там все языки сводятся к какому-то взаимодействию с платформой. |
|
Сообщ.
#5247
,
|
|
|
|
Цитата D_KEY @ Ты точно также компилишь со своего языка в байткод JVM А байткод, если память не изменяет, очень неплохо декомпилируется в java... |
|
Сообщ.
#5248
,
|
|
|
|
Цитата Romkin @ Вряд ли. Просто представление объекта в виде строки - это не обязательно его тип. ну да. представление объекта в виде строки -- это object.toString() например, но никак не typeof(Object). но при чем тут представление объекта в виде строки? T там -- это тип, а не объект. Цитата Romkin @ А хотели вывести именно наименование типа. А T.Name - это явно не тип, а может быть чем угодно. именно наименование -- это и есть T.Name (Integer.Name) или T.FullName или T.RealName в зависимости от ситуации. а чем по-вашему может быть T.Name? Цитата Romkin @ Цитата korvin @ да и вообще, по логике вещей typeof(Integer) должен выдать что-то вроде System.Type, ведь т.к. Integer сам является типом, то тип типа -- метатип (простите за тавтологию =)) Метод выполняется после инстанцирования, поэтому выдаваться должен именно integer. вот это вообще непонятно как относится к моим словам Цитата Romkin @ И в чем недоделка? Указано, что сравниваются типы, а не экземпляры. Хочешь убрать? А как тогда значения сравнивать, а не типы? в том, что как и жабке в этом Oxygen не смогли реализовать нормально типы как объекты. а сравниватся и значения и типы должны одинаково |
|
Сообщ.
#5249
,
|
|
|
|
Цитата Romkin @ Цитата D_KEY @ Ты точно также компилишь со своего языка в байткод JVM А байткод, если память не изменяет, очень неплохо декомпилируется в java... А с C# не так? |
|
Сообщ.
#5250
,
|
|
|
|
Цитата Romkin @ Цитата D_KEY @ Ты точно также компилишь со своего языка в байткод JVM А байткод, если память не изменяет, очень неплохо декомпилируется в java... и что? |