|  11.12.2007, 16:37 | #1 | 
| Moderator | Вернуть this из класса 
			
			(С маленькой надеждой в голосе)  Может кто-нибудь знает красивый способ вернуть экземпляр класса (this) из метода этого же экземпляра класса? То есть вместо такого: X++: var.parm1(...); var.parm2(...); var.parm3(...); var.parm4(...); var.doIt(); X++: var.parm1(...).parm2(...).parm3(...).parm4(...).doIt(); | 
|  | 
|  11.12.2007, 16:41 | #2 | 
| Участник | Цитата: X++: class Smth { } Smth parm(...) { // ... return this; } | 
|  | 
|  11.12.2007, 16:43 | #3 | 
| Moderator | 
			
			Если бы все было так просто - не спрашивал. Ругается на return this; В декларации метода в качестве возвращаемого типа указан сам класс. | 
|  | 
|  11.12.2007, 16:47 | #4 | 
| Moderator | 
			
			Аааа.....сорри, прошу прощения. Это косяки местного приложения. | 
|  | 
|  11.12.2007, 16:47 | #5 | 
| Участник | 
			
			Странно, у меня не ругается. Проверил - работает на AX3 SP1
		 | 
|  | 
|  11.12.2007, 17:11 | #6 | 
| Участник | 
			
			Белугин так реализовывал QueryBuilder - методы которые обычно находятся на QueryBuildDataSource возвращали его же, что позволяло вызывать несколько методов подряд на том же queryBuildDataSource.
		 | 
|  | 
|  11.12.2007, 17:15 | #7 | 
| Moderator | 
			
			Хм... а я сделал оболочку над Args().
		 | 
|  | 
|  11.12.2007, 17:20 | #8 | 
| Moderator | 
			
			То есть, вместо подобного: X++:     Args   args;
    ;
    args = new Args();
    args.name(formStr(reportURLedgerTurnoverSetup));
    args.parmEnumType(enumnum(reportUReportType));
    args.parmEnum(reportUserReport.ReportType);
    args.parm(reportUserReport.ReportName);
    formRun = classFactory.formRunClass(args);X++: formRun = new my_Args().name(formStr(reportURLedgerTurnoverSetup)) .parmEnumType(enumnum(reportUReportType)) .parmEnum(reportUserReport.ReportType) .parm(reportUserReport.ReportName) .formRun(); | 
|  | 
|  11.12.2007, 22:54 | #9 | 
| Участник | 
			
			За что любил, люблю и буду любить Axapt-у, за то что есть хоть какие-то правила групповой разработки. За то что прежде чем написать что-то программисты писавшие её думали, а какого этим будет пользоваться другим, как это код будет читаться. Вам то может превычней. Потому что натация короче. А какого просматривать код, тем кто после прийдёт?  Осуждать не люблю просто прошу задуматься хоть на секунду, стоит ли ломать такие привычные вещи, как ввод параметров в класс Args. Тем более опыта то у вас намного больше. Но честно лучше уж такие превычные вещи оставлять такими какие они есть. | 
|  | 
|  12.12.2007, 07:49 | #10 | 
| Участник | Цитата: 
		
			Сообщение от miklenew
			   За что любил, люблю и буду любить Axapt-у, за то что есть хоть какие-то правила групповой разработки. За то что прежде чем написать что-то программисты писавшие её думали, а какого этим будет пользоваться другим, как это код будет читаться. Вам то может превычней. Потому что натация короче. А какого просматривать код, тем кто после прийдёт?  Осуждать не люблю просто прошу задуматься хоть на секунду, стоит ли ломать такие привычные вещи, как ввод параметров в класс Args. Тем более опыта то у вас намного больше. Но честно лучше уж такие превычные вещи оставлять такими какие они есть. 
				__________________ Бывает, что человек молчит, когда ничего не знает о данном предмете, но чаще – когда знает о нем все. (Джордж Бернард Шоу) | 
|  | 
|  12.12.2007, 10:18 | #11 | 
| Moderator | Цитата: 
		
			За что любил, люблю и буду любить Axapt-у, за то что есть хоть какие-то правила групповой разработки.
		
	 В Аксапте, кстати, с правилами разработки довольно плохо. На мой взгляд, среда (или инструменты) разраблотки должны поддерживать автоматическую валидацию правил разработки, иначе контроль за их соблюдением превышает преимущества их выполнения. Цитата: 
		
			За то что прежде чем написать что-то программисты писавшие её думали, а какого этим будет пользоваться другим, как это код будет читаться.
		
	  Цитата: 
		
			Вам то может превычней. Потому что натация короче.
		
	 | 
|  | 
|  12.12.2007, 10:26 | #12 | 
| Moderator | Цитата: 
		
			Только все как писали, так и будут писать. (Т.е. что бы самим было удобно)
		
	   | 
|  | 
|  12.12.2007, 10:42 | #13 | 
| Участник | |
|  | 
|  12.12.2007, 10:45 | #14 | 
| Moderator | Цитата: 
		
			Ну есть Best Practice Check - правда тормозной....
		
	 Кстати, а где можно посмотреть QueryBuilder?   | 
|  | 
|  12.12.2007, 10:48 | #15 | 
| Участник | 
			
			что за  QueryBuilder?
		 | 
|  | 
|  12.12.2007, 10:50 | #16 | 
| Moderator | Цитата: 
		
			kashperuk:   Белугин так реализовывал QueryBuilder - методы которые обычно находятся на QueryBuildDataSource возвращали его же, что позволяло вызывать несколько методов подряд на том же queryBuildDataSource.
		
	   | 
|  | 
|  12.12.2007, 10:58 | #18 | 
| Участник | 
			
			Ктати Best Practice Check  - расширяемая штука
		 | 
|  | 
|  12.12.2007, 15:16 | #19 | 
| Участник | Цитата: 
		
			Сообщение от miklenew
			
			 Вам то может превычней. Потому что натация короче. Цитата: В лучшем случае, у Вас ничего не получится. В худшем, Вы получите пародоксальное (не предсказуемое) поведение Axapta. Каждая среда программирования имеет свою собственную идеологию. Следствием которой и является используемый синтаксис языка и интерфейс приложений. И в чужой монастырь со своим уставом лучше не лезть. Ведь и побить могут   | 
|  | 
|  12.12.2007, 15:20 | #20 | 
| Участник | 
			
			>>>В худшем, Вы получите пародоксальное (не предсказуемое) поведение Axapta. Каким образом? | 
|  |