![]() |
#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, напишите личное сообщение администратору. |
|
![]() |
#2 |
Участник
|
Цитата:
var myClass = new MyClass();
Извиняюсь. Прочитал статью. Там есть ответ на этот вопрос. Отрицательный Последний раз редактировалось S.Kuskov; 03.12.2015 в 12:23. |
|
![]() |
#3 |
Британский учённый
|
Цитата:
![]()
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. Последний раз редактировалось Link; 03.12.2015 в 12:27. Причина: RTFM |
|
![]() |
#4 |
Administrator
|
Цитата:
when using the var keyword, IntelliSense is not available (yet).
![]()
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#5 |
Участник
|
Му-ха-ха-ха!!!!!
Кхе-кхе-Кх-х-хгр.... *подавился сардоническим смехом* |
|
![]() |
#6 |
Участник
|
А кто-нибудь понял в чем отличие от Object или Common?
типо просто круче? |
|
![]() |
#7 |
Британский учённый
|
Думаю, что дело не в том, что круче. Скорее всего т.к. АХ движется постепенно в сторону С#, то скорее и смысл будет тот же что и в С#. Видно, что добавили, но не доделали. Может для будущей совместимости, а может не получилось доделать. Собственно автор и дает рекомендации объявления в АХ7.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. Последний раз редактировалось Link; 03.12.2015 в 14:26. |
|
![]() |
#8 |
Участник
|
|
|
![]() |
#9 |
Британский учённый
|
Цитата:
А где об этом можно почитать?
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. Последний раз редактировалось Link; 03.12.2015 в 16:38. |
|
![]() |
#10 |
Administrator
|
Цитата:
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#11 |
Участник
|
Цитата:
Сообщение от sukhanchik
![]() Я так понимаю - необязательно писать extends Object у класса - т.к. это подразумевается по умолчанию. Но классы по-любому будут отнаследованы от Object. https://msdn.microsoft.com/en-us/library/object.aspx
|
|
|
За это сообщение автора поблагодарили: sukhanchik (2). |
![]() |
#12 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Logger (1), Link (1). |
![]() |
#13 |
Британский учённый
|
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
![]() |
#14 |
Участник
|
в 2009-й
\Classes\Activities\classDeclaration 2-й класс в ветке аот X++: class Activities
{
boolean deleteSeries;
} Последний раз редактировалось Logger; 03.12.2015 в 16:34. |
|
![]() |
#15 |
Британский учённый
|
Цитата:
![]()
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
![]() |
#16 |
Британский учённый
|
Я правильно понимаю, что единственная причина, по которой вы привели это класс, что у него в свойствах Extends ничего не указанно?
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
![]() |
#17 |
Участник
|
Цитата:
Создайте экземпляр такого класса в джобе (его или любого другого который ни от чего не наследуется). И попробуйте на нем вызывать методы класса Object Получите ошибку времени выполнения. |
|
![]() |
#18 |
Участник
|
Цитата:
Браузер иерархии говорит то же самое - что наследуется. А по факту это не так ![]() Добро пожаловать в реальный мир, Нео. ![]() Специально проверил в 2012-й Там то же самое. Последний раз редактировалось Logger; 03.12.2015 в 17:34. |
|
|
За это сообщение автора поблагодарили: Link (1). |
![]() |
#19 |
Участник
|
Var это не тип данных - это просто ключевое слово что тип данных будет выведен из выражения при присваивании.
Var x= new MyClass(); У x тип myClass - результат совершенно тот же что и у myClass x = new MyClass() Если вызвать x.nitExistingMetgod() результат не скопируется Object x= new MyClass() у x тип object - можно присвоить значение-экземпляр другого класса Если вызвать несуществующий метод результат скопируется но при запуске будет ошибка |
|
|
За это сообщение автора поблагодарили: Logger (3). |
![]() |
#20 |
Британский учённый
|
Цитата:
![]() Более того, противоположно утверждению на MSDN, все новые не стандартные классы создаются без наследования Object ![]()
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
Теги |
anytype, ax7, d365, mfp, var, x++ |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|