AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX Blogs
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 15.12.2015, 12:11   #1  
Blog bot is offline
Blog bot
Участник
 
25,646 / 848 (80) +++++++
Join Date: 28.10.2006
mfp: X++ in AX7: Readonly keyword
Источник: http://blogs.msdn.com/b/mfp/archive/...y-keyword.aspx
==============
In AX7 X++ now supports the readonly keyword. Semantically it is identical to readonly in C#.

In short; it allows you to define members on a class that can only be initialized in the declaration and in the constructor.

class MyClass
{
readonly str identifier = "XYZ";
readonly str identifier2;

public void new(str _identifier)
{
identifier2 = _identifier;
}

public void foo()
{
// The field 'identifier2' is read only. A value cannot be assigned to it.
//identifier2 = "ABC";
}
}





The big question is "when to use it?" In my opinion the actual use scenarios are limited – simply because other language constructs are still missing.

In X++ we still recommend the construct pattern and the newFrom pattern. These patterns recommend the new method to not have any parameters – readonly has little applicability, when the new method is parameter-less.

So why do we prefer parameter-less new methods?

  1. It enables serialization of classes using the pack/unpack pattern – all classes extending RunBase are subject to this.
  2. It enables the extension framework and smart customizations.
Once X++ supports getters/setters and method overloading (at least of the new method) – then readonly will become handy.

If you have a good use scenario for readonly - please share in the comments section below.



THIS POST APPLIES TO MICROSOFT DYNAMICS AX7 TECHNICAL PREVIEW; IS PROVIDED AS-IS AND CONFERS NO RIGHTS.




==============
Источник: http://blogs.msdn.com/b/mfp/archive/...y-keyword.aspx
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
Old 15.12.2015, 14:07   #2  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
вот, блин... лучше бы геттеры и сеттеры сделали, как у нормальных людей.
This post has been rated by: Logger (2).
Old 15.12.2015, 14:52   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
4,001 / 3298 (118) ++++++++++
Join Date: 12.10.2004
Location: Москва
Blog Entries: 2
Именно что.
Параметрические методы еще удобнее тем что с их помощью проще поймать то место которое меняет значение параметра на нежелательное. Ставишь точку останова и если надо, дописываешь пару строк кода для ловли нужного значения. Отладка ускоряется радикально.
Old 15.12.2015, 18:22   #4  
belugin is offline
belugin
Участник
belugin's Avatar
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Join Date: 16.01.2004
Blog Entries: 5
Quote:
Originally Posted by mazzy View Post
вот, блин... лучше бы геттеры и сеттеры сделали, как у нормальных людей.
Конечно про проперти знают. Возможно, трудоемкость их добавления просто выше чем для readonly.
 

Similar Threads
Thread Thread Starter Forum Replies Last Post
mfp: X++ in AX7: Internal keyword Blog bot DAX Blogs 25 20.12.2015 19:36
mfp: X++ in AX7: Reals are decimals Blog bot DAX Blogs 0 14.12.2015 22:11
mfp: X++ in AX7: Static event subscription Blog bot DAX Blogs 0 11.12.2015 11:11
mfp: X++ in AX7: The var keyword Blog bot DAX Blogs 43 04.12.2015 10:19
mfp: X++ in AX7 Blog bot DAX Blogs 0 02.12.2015 22:13

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 09:39.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.