|
![]() |
#1 |
Участник
|
У меня присутствует следующее опасение от грядущего перехода с X++ на C# :
В C# существуют более сложные конструкции языка чем в X++ и продвинутые C# - еры начнут ими пользоваться. В итоге, читая код, нужно будет сначала разбираться в конструкциях языка, а потом уже в бизнес-логике. X++ прост и выразителен, читая код, ты сразу понимаешь, что в нем происходит. В общем, на мой взгляд, есть вероятность того, что разработка на С# будет занимать больше времени. |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от _scorp_
![]() У меня присутствует следующее опасение от грядущего перехода с X++ на C# :
В C# существуют более сложные конструкции языка чем в X++ и продвинутые C# - еры начнут ими пользоваться. В итоге, читая код, нужно будет сначала разбираться в конструкциях языка, а потом уже в бизнес-логике. ![]() Цитата:
![]() p.s. Как красноглазик в данном вопросе ![]() Последний раз редактировалось Lemming; 11.12.2009 в 21:44. |
|
![]() |
#3 |
Участник
|
Он не сложный, но возможностей "загнуть" там гораздо больше чем на X++. Вот например что здесь выведется на экран
X++: class X<T> { public static void PrintTypes() { Console.WriteLine(typeof(T).FullName); Console.WriteLine(typeof(X<X<T>>).FullName); } } class App { static void Main() { X<int>.PrintTypes(); } } X++: class Program { delegate int DelegateType(int valTypeParam, string refTypeParam, ref int refParam, out int outParam); static DelegateType GetMethod() { return delegate(int valTypeParam, string refTypeParam, ref int refParam, out int outParam) { System.Console.WriteLine("Hello valParam:{0} refTypeParam:{1}", valTypeParam, refTypeParam); refParam++; outParam = 9; return valTypeParam; }; } static void Main() { DelegateType delegateInstance = GetMethod(); int refVar = 5; int outVar; int i = delegateInstance(1, "one", ref refVar, out outVar); int j = delegateInstance(2, "two", ref refVar, out outVar); System.Console.WriteLine("i:{0} j:{1} refVar:{2} outVar:{3}", i, j, refVar, outVar); } } |
|
|
За это сообщение автора поблагодарили: Lemming (5). |
![]() |
#4 |
Участник
|
Цитата:
X`1[[X`1[[System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089] ], test, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]] Я так понимаю, что тут 1. полные именя типов 2. int32 подвергся боксингу 3. `1 означает "от одного аргумента" Я прав? То есть проблема в реализации преобразования типа тип к строке? Цитата:
Или здесь X++: class Program { delegate int DelegateType(int valTypeParam, string refTypeParam, ref int refParam, out int outParam); У меня вывело Hello valParam:1 refTypeParam ![]() Hello valParam:2 refTypeParam:two i:1 j:2 refVar:7 outVar:9 вроде так и должно быть. |
|
![]() |
#5 |
Участник
|
Здесь на самом деле нет ни какой проблемы. Для generic-ов FullName выводиться по другому и в MSDN об этом говорится. В этих примерах нет никаких ребусов, я просто хотел сказать, что в X++ нет таких синтаксических конструкций и читать его следовательно легче (по крайней мере для меня).
Даже не знаю как это написать на X++. ![]() ![]() |
|
![]() |
#6 |
Участник
|
Цитата:
Сообщение от _scorp_
![]() Здесь на самом деле нет ни какой проблемы. Для generic-ов FullName выводиться по другому и в MSDN об этом говорится. В этих примерах нет никаких ребусов, я просто хотел сказать, что в X++ нет таких синтаксических конструкций и читать его следовательно легче (по крайней мере для меня).
X++: List<String> myFunction() X++: List myFunction()
// (а теперь надо посмотреть где этот List создается и что в него можно запихать) Цитата:
Даже не знаю как это написать на X++.
![]() Цитата:
ни делегатов,
Цитата:
ни out параметров,
Цитата:
ни значимых типов, которые можно передать по ссылке,
Цитата:
да много чего нет... Но я с Вами согласен, что и на X++ можно намудрить, просто здесь для "мудрецов" больше возможностей
![]() Последний раз редактировалось belugin; 14.12.2009 в 18:46. |
|
![]() |
#7 |
Участник
|
В MSDN появился раздел "Отличия X++ от C# для чайников".
http://msdn.microsoft.com/en-us/library/cc967357.aspx
__________________
The 50-50-90 rule: Any time you have a 50-50 chance of getting something right, there’s a 90% probability you’ll get it wrong. |
|
|
За это сообщение автора поблагодарили: AlGol (1), PavelX (1). |
Теги |
.net, c#, x++, что нового, перспективы |
|
![]() |
||||
Тема | Ответов | |||
DeniZone: Copy - paste utility | 0 | |||
DeniZone: x++ and C# compared | 0 | |||
DeniZone: Opening a form on start up of AX | 1 | |||
Dynamics AX: The Future of Dynamics AX and Web 2.0 | 0 |
|