03.12.2015, 11:11 | #1 |
Участник
|
mfp: X++ in AX7: The var keyword
Источник: http://blogs.msdn.com/b/mfp/archive/...r-keyword.aspx
============== This is the new language feature that is generating most discussions. Just like C# you can now use the var keyword when declaring variables. It has the exact same semantics, and any guideline you will find on how to use it in C# will also apply in X++. In C# the var keyword was introduced to enable scenarios where declaring the type was impossible, near-impossible or irrelevant, like with anonymous types and generics. Writing less was naturally well received by a lot of developers, and the use of var blossomed. It is also a great topic for steering up a debate. There are lots of guidelines and opinions. They cover the entire range from one extreme: "Always use it, it makes code easier to read" to the opposite extreme: "Never use it, it makes code harder to read". X++ does not support anonymous types or generics in AX7 - so the real need for the var keyword is not present - yet it is supported, and already heavily used. Like in C# the use of var is as strongly typed as when the type is explicitly provided. Personally, I'm recommending using var in only two cases:
THIS POST IS PROVIDED AS-IS AND CONFERS NO RIGHTS ============== Источник: http://blogs.msdn.com/b/mfp/archive/...r-keyword.aspx
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
03.12.2015, 12:17 | #2 |
Участник
|
Цитата:
var myClass = new MyClass();
Извиняюсь. Прочитал статью. Там есть ответ на этот вопрос. Отрицательный Последний раз редактировалось S.Kuskov; 03.12.2015 в 12:23. |
|
03.12.2015, 12:23 | #3 |
Британский учённый
|
Точно, IntelliSense не работает
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. Последний раз редактировалось Link; 03.12.2015 в 12:27. Причина: RTFM |
|
03.12.2015, 12:24 | #4 |
Administrator
|
Цитата:
when using the var keyword, IntelliSense is not available (yet).
__________________
Возможно сделать все. Вопрос времени |
|
03.12.2015, 13:24 | #5 |
Участник
|
Му-ха-ха-ха!!!!!
Кхе-кхе-Кх-х-хгр.... *подавился сардоническим смехом* |
|
03.12.2015, 13:27 | #6 |
Участник
|
А кто-нибудь понял в чем отличие от Object или Common?
типо просто круче? |
|
03.12.2015, 13:38 | #7 |
Британский учённый
|
Думаю, что дело не в том, что круче. Скорее всего т.к. АХ движется постепенно в сторону С#, то скорее и смысл будет тот же что и в С#. Видно, что добавили, но не доделали. Может для будущей совместимости, а может не получилось доделать. Собственно автор и дает рекомендации объявления в АХ7.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. Последний раз редактировалось Link; 03.12.2015 в 14:26. |
|
03.12.2015, 13:50 | #8 |
Участник
|
|
|
03.12.2015, 15:38 | #9 |
Британский учённый
|
Цитата:
А где об этом можно почитать?
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. Последний раз редактировалось Link; 03.12.2015 в 16:38. |
|
03.12.2015, 15:50 | #10 |
Administrator
|
Цитата:
__________________
Возможно сделать все. Вопрос времени |
|
03.12.2015, 16:03 | #11 |
Участник
|
Цитата:
Сообщение от sukhanchik
Я так понимаю - необязательно писать extends Object у класса - т.к. это подразумевается по умолчанию. Но классы по-любому будут отнаследованы от Object. https://msdn.microsoft.com/en-us/library/object.aspx
|
|
|
За это сообщение автора поблагодарили: sukhanchik (2). |
03.12.2015, 16:05 | #12 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Logger (1), Link (1). |
03.12.2015, 16:16 | #13 |
Британский учённый
|
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
03.12.2015, 16:31 | #14 |
Участник
|
в 2009-й
\Classes\Activities\classDeclaration 2-й класс в ветке аот X++: class Activities
{
boolean deleteSeries;
} Последний раз редактировалось Logger; 03.12.2015 в 16:34. |
|
03.12.2015, 16:40 | #15 |
Британский учённый
|
Хм, у меня только 2012, но Браузер иерархии типа говорит, что наследуется от Object, да и не совсем ясно почему он вдруг не должен наследовать
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
03.12.2015, 16:50 | #16 |
Британский учённый
|
Я правильно понимаю, что единственная причина, по которой вы привели это класс, что у него в свойствах Extends ничего не указанно?
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
03.12.2015, 17:02 | #17 |
Участник
|
Цитата:
Создайте экземпляр такого класса в джобе (его или любого другого который ни от чего не наследуется). И попробуйте на нем вызывать методы класса Object Получите ошибку времени выполнения. |
|
03.12.2015, 17:15 | #18 |
Участник
|
Цитата:
Браузер иерархии говорит то же самое - что наследуется. А по факту это не так Добро пожаловать в реальный мир, Нео. Специально проверил в 2012-й Там то же самое. Последний раз редактировалось Logger; 03.12.2015 в 17:34. |
|
|
За это сообщение автора поблагодарили: Link (1). |
03.12.2015, 17:48 | #19 |
Участник
|
Var это не тип данных - это просто ключевое слово что тип данных будет выведен из выражения при присваивании.
Var x= new MyClass(); У x тип myClass - результат совершенно тот же что и у myClass x = new MyClass() Если вызвать x.nitExistingMetgod() результат не скопируется Object x= new MyClass() у x тип object - можно присвоить значение-экземпляр другого класса Если вызвать несуществующий метод результат скопируется но при запуске будет ошибка |
|
|
За это сообщение автора поблагодарили: Logger (3). |
03.12.2015, 17:53 | #20 |
Британский учённый
|
Цитата:
Более того, противоположно утверждению на MSDN, все новые не стандартные классы создаются без наследования Object И таковых немало среди стандартных. Интересно, от куда ноги растут у этого утверждения, если как минимум для 2009 и 2012 это не верно, а в статье указанно, что она относится к АХ 2012.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|