Kas ir formālie parametri 1C procedūrā. Procedūru un funkciju apraksts

Funkcijas 1c un procedūras 1C darbā līdzīgi citām valodām - funkcija ir nosaukts subroutine, lai zvanītu no citām programmatūras kodu atrašanās vietām.

Procedūra funkciju deklarēšanai patvaļīgā modulī (tas ir, tas ir iespējams tekstā procedūras, kas atrodas pašā sākumā moduļa izmantot procedūras, kuru teksts atradīsies zemāk šajā modulī). Tāpat 1C funkcijas var eksportēt.

Lai "iziet" no 1C funkcijas un procedūru izpildes, izmantojiet komandu "Atgriezties;". Funkcija (pretēji procedūrai) "atgriež" aprēķinu rezultātu, tas ir, ir nepieciešams rakstīt "atgriešanās vērtību;". 1C funkcijas netiek ievadītas, tad tās var atgriezt dažādu veidu vērtību atkarībā no parametriem vai apstākļiem.

Funkcija atšķiras no procedūras, lai varētu atgriezt aprēķinu rezultātu, piemēram:

Funkcijas funkcija1 (parametrs)
Atgriešanās parametrs * 2;
Darba režīms

Mainīgs1 \u003d funkcija1 (10);
// mainīgais1 būs vienāds ar 20

1C funkcijas un procedūru parametri ir saites uz mainīgajiem lielumiem, kas pastāv pie zvanu vietā. "Atsauce" nozīmē, mainot parametra "Inside" funkciju 1C vērtību, tas tiks mainīts un "ārpusē". Tā, ka tas nenotiek - parametrs tiek pārraidīts ar AC vērtību. Tomēr tas nedarbojas ar objektu vērtībām (saraksti, tabulas, datu bāzes objekti), tie joprojām tiks nosūtīti pēc atsauces.

Nosūtot parametru uz procedūru / funkciju, to nosūta "pēc atsauces". Tas nozīmē, ka mainot to procedūras laikā, jūs mainīsiet tās vērtību, piekļūstot pēc 1C funkcijas beigām. Tādējādi iepriekšējo piemēru var rakstīt šādi:

Procedūras process1 (parametrs)
Parametrs \u003d parametrs * 2;
Ekstrēmija

Mainīgais1 \u003d 10;
Procedūra1 (mainīgais1);
Ziņojums (mainīgais1);
// rezultāts būs 20

Lai nodotu procedūru, mainīgā vērtība, nevis tā paša:

Procedūras procedūra1 (vērtības parametrs)
// darbības ..
Ekstrēmija

Strādājot ar objektiem (katalogi, dokumenti), jāatceras, ka 1.c / 1. procedūras kārtībā var veikt.
Ja 1C / procedūras funkcija 1C vairākus parametrus, tad nevajadzīgu var izlaist (norādot komatu, ja vidū trūkst parametrs), tas tiks nosūtīts vai nenoteikts (skatīt zemāk) vai noklusējuma vērtību:

Funkcijas funkcija1 (parametrs1, parametrs2, parametrs3 \u003d "virknes vērtība")
// dari kaut ko
Darba režīms

// Avota funkcija bez dažiem parametriem
// parametrs2 būs vienāds ar neskaidru
// parametrs3 būs vienāds ar "virknes vērtību"
Funkcija1 (10);

// Aickart funkciju bez otrā parametra
Funkcija1 (10, "vērtība");

Kā minēts iepriekš, 1C procedūras tiek izmantotas kā notikumu apstrādātāji, kas rodas no lietotāja ar formu (atvēršana, aizvēršana, nospiežot pogas utt.) Vai platformas darbību (sākums, pabeigšana utt.). Iespējamos veidlapu apstrādātājus vai tā elementus var redzēt rekvizītos - noklikšķinot uz atbilstošo veidlapas elementu (un srolling rekvizītu logu uz leju). Pārmeklētāju veidi objekta modulī var redzēt, izmantojot nolaižamo sarakstu paneļa konfiguratorā - kur tiek parādīts pat nenoteiktu un jau noteikto notikumu saraksts. Dažādos pasākumos, dažādi parametri, pievienojot 1C apstrādātāju, automātiski nosaka parametru sarakstu.

Iebūvēts 1C: Uzņēmumi atbalsta divus veidus, kā pārsūtīt parametrus uz procedūrām un funkcijām: parametru pārraidīšana pēc atsauces un pārraides parametriem pēc vērtības.

Pēc noklusējuma iegultajā valodā 1C: Uzņēmumi 8 parametru pārsūtīšana uz procedūrām un funkcijām, atsaucoties. Tas nozīmē, ka formālās parametra maiņa procedūrā vai funkcijā tiks atspoguļota par faktiskā parametra vērtību, kad tiek izsaukts procedūra vai funkcija.


Procedūras procedūra1 (formāls parametrs1)

Formalpermeter1 \u003d 2 * 3;

Ekstrēmija

FaktiskāParameter \u003d 10;
Procedūra1 (faktiskais parametrs);

// Tiks parādīta 6 vērtība - formālās izmaiņas
// parametrs procedūras iekšpusē ietekmēja pārmaiņas

// zvanu procedūra: pēc noklusējuma, parametri tiek pārraidīti
// saite!

Pārsūtiet parametrus pēc vērtības

Kad parametrs sauc par izsaukto procedūru vai funkciju, izmaiņas vērtības formālās parametra iekšpusē procedūras vai funkcijas neietekmē faktisko parametru pārraida, kad tiek saukta procedūra vai funkcija. Ņemiet vērā, ka parametrs jānosūta pēc vērtības, tiek veikta, izmantojot vērtību atslēgvārdu.

Piemērs:


Procedūras process2 (formāla parametru vērtība)

Formalpermeter1 \u003d 2 * 3;

Ekstrēmija

FaktiskāParameter \u003d 10;
Procedūra2 (faktiskais parametrs);

// Tiks parādīta vērtība 10 - oficiālās izmaiņas
// parametrs procedūras iekšpusē neietekmēja izmaiņas
// vērtības faktiskā parametra pārraida, kad
// zvanu procedūra: parametrs tiek pārraidīts pēc vērtības!
Ziņojums (faktiskais parametrs);

Dažādu datu veidu pārsūtīšanas funkcijas pēc vērtības

Dažādu veidu datu pārsūtīšanai pēc vērtības ir savas īpašības. Tās sastāv no formālu parametru konteksta metodēm un īpašībām, faktiskā parametra stāvoklis, kad tiek saukts par procedūru vai funkciju.

Apsveriet kā piemēru situāciju, kad vērtības tabula ir vērtības tabula. Iekšējā kārtībā procesa gājiens () ir izveidots jauns vērtību tabulas gadījums, kas papildina trīs līnijas. Tas neietekmē TK vērtību tabulas statusu, kas nosūtīta kā faktiskais parametrs, izsaucot procedūru, lai izstrādātu procedūru ():


Procedūras apstrādeTrack (zīmes tabula)


Cilnes vērtība \u003d jaunas tabulas;

// Vērtību tabulā pievienojiet divus skaļruņus
Cilnes compex. Aplieci. Addly ("aile11");
Cilnes piespiež. Addly ("kolonna2");


Par n \u003d 1 līdz 3 ciklu
NovStok \u003d tab Value. Addly ();
Novantok.colonka1 \u003d "kolonna";
Novantok.colonka2 \u003d p;
Endcikls;

Ekstrēmija

// izveidot jaunu vērtību tabulu
Tk \u003d jaunas tabulas;



// pievienot dažas rindas vērtību tabulā
Par n \u003d 1 līdz 10 ciklu
Novantok \u003d tz. Adīts ();

Novantok.colonka3 \u003d p;
Endcikls;

// atsaukts 10


Apstrādāti (TK);

// atsauktu 10: procedūras procedūras iekšpusē
// formālā parametrs saglabāja jauno vērtību tabulu

Apsveriet kā piemēru situāciju, kad vērtības tabula ir vērtības tabula. Iekšējā kārtībā, nodrošinājuma () tabula vērtību, kas nosūtīta kā parametrs, izsaucot procedūru, ir sabrukusi:


// Ir norādīts, ka tabulas vērtības parametra nodošana tiek veikta pēc vērtības
Procedūras sabrukums: tabulas signāls)

// mēs ar vērtību tabulu par kolonnu kolonnu1 un sleju3
Cilnes kopsavilkums ("kolonns1", "kolonna3");

Ekstrēmija

// izveidot jaunu vērtību tabulu
Tk \u003d jaunas tabulas;

// vērtību tabulā pievienojiet trīs kolonnas
Tk.colonki. Addly ("kolonns1");
Tk.colonki. Addly ("kolonna2");
Tk.colonki. Addly ("kolonns3");

// pievienot dažas rindas vērtību tabulā
Par n \u003d 1 līdz 10 ciklu
Novantok \u003d tz. Adīts ();
Novantok.colonka1 \u003d "kolonna1";
Novantok.colonka2 \u003d "kolonna2";
Novantok.colonka3 \u003d p;
Endcikls;

// atsaukts 10
Ziņojums ("elementu skaits TK pagriežot:" + tz. N'tr. ());

// nosprieda procedūru, iesniedzot faktisko parametru TK pēc vērtības
Izvietošana (TK);

// vērtību tabula tagad samazināta: vērtība tiks parādīta 1
Ziņojums ("elementu skaits TK pēc locīšanas:" + TK. Pilsonība ());

Tādējādi faktiskā parametra nodošana pēc vērtības šajā gadījumā neizraisīja vērtību kopijas izveidi vērtību. Strādājot ar vērtību vērtībām un metodēm, mēs strādājam ar vērtību īpašībām un metodēm, ko izmantoja, kad tiek izsaukta procedūra ().

Visu veidu atšķirība, nosūtot procedūras parametru vai funkciju pēc atsauces vai vērtības, izpaužas kā procedūras faktiskā parametra vai jaunās vērtības funkcijas piešķiršana. Faktiskā parametra konteksta izsaukšanas īpašības un metodes, ja tādi ir, ietekmē formālo parametru neatkarīgi no tā, vai tas tiek nosūtīts pēc atsauces vai pēc vērtības.

1. Procedūru un funkciju aprakstu ieteicams veikt komentāru veidā. Nepieciešamība komentēt dažas procedūras un funkciju sadaļas būtu jānosaka ar attīstību, pamatojoties uz konkrētās kodeksa daļas sarežģītību un nestabilitāti.

2. Obligāts komentārs prasa programmatūras saskarnē iekļauto moduļu procedūras un funkcijas - šādas procedūras un funkcijas ir paredzētas lietošanai citās funkcionālajās apakšsistēmās (vai citās lietojumprogrammās), par kurām var būt atbildīgi citi izstrādātāji, tāpēc tiem jābūt labi dokumentēts.

Skatīt arī:Eksporta procedūru un funkciju izmantošanas ierobežojumi un eksporta procedūru un funkciju izmantošana moduļu formās

4. Jāizvairās no komentāriem, kas nesniedz papildu paskaidrojumus par eksporta procedūras darbību (funkciju).
Piemēram, nepareizi:

// Procedūra - procesora notikums "Izejas" veidlapas // & Slit recirkuit procedūra () // apstrādes procedūra "Aprēķināt" // un pareiza procedūra aprēķina () Rediģēt Tovenge flīžu "uzlikšanas" notikuma "noteikšanas" apstrādes kārtība // & klauzulas rediģēšanas procedūra entroLkovdiade (elements)

Šajos piemēros komentāri ir lieki, jo tas ir acīmredzams no to, ka tie ir notikumu apstrādātāji. Un ar to aprakstu un parametru piešķiršanu var atrast sintakses palīgam.

// funkcija atgriež saskaņā ar dokumentu Clauseency (dati) funkcija

Šis komentārs nesniedz papildu informāciju par funkciju.

5. Komentārs tiek ievietots pirms procedūras paziņošanas (funkcijas), un tam ir šāda forma.

5.1. Sadaļa "Apraksts"satur verbālu īsu aprakstu par galamērķi un / vai procedūras principiem (funkcijas). Tas var būt vienīgais posms procedūrām bez parametriem.

5.2. Sadaļa "Parametri"apraksta procedūras (funkciju) parametrus. Ja tie nav, sadaļa tiek izlaista. Pirms virknes "parametriem:" , tad no jaunās līnijas ir apraksti visiem parametriem.

5.2.1. Parametra apraksts Tas sākas ar jaunu līniju, tad parametra nosaukums, tad defise un tipa saraksts (*), kam seko defise un parametra teksta apraksts.
Piemēram:

// parametri:

Katram parametram varat norādīt vienu vai vairākus parametru tipu papildu aprakstus. Katrs papildu apraksts sākas ar jaunu līniju, tad obligāta defise, tad saraksts ar parametru tipiem (*), kam seko defisi un teksta apraksts.
Piemēram:

// parametri: // Sīkāka informācija - virkne - visu informāciju, kas uzskaitīti ar komatu. Piemēram, "kods, vārds, vecāks". // - struktūra, fiksētās konstrukcijas - kā atslēga nosūtīts // pseidonīmu lauki atgrieztajai struktūrai ar rezultātu, // un kā vērtība (pēc izvēles), faktiskais lauka nosaukums tabulā. // Ja vērtība nav definēta, lauka nosaukums tiek ņemts no atslēgas. // - masīvs, fixidmassiv - aksesuāru klāsts.

5.3. Sadaļa "Atgriešanās vērtība"apraksta funkcijas funkcijas veidu un saturu. Par procedūrām, šī sadaļa trūkst. Pirms virknes "atgriešanās vērtība:". Tad no jaunās līnijas veidiem veidu (*), tad defisi un tekstu.
Piemēram:

// Atgriešanās vērtība: // boolevo - patiesība, ja pašreizējam lietotājam ir pieejama vismaz viena no nosūtītajām lomām,

5.4. Sadaļa "Piemērs" Satur piemēru, izmantojot procedūru vai funkciju. Sagatavojusi virkne "Piemērs:". Tālāk, no jaunās līnijas piemēru izmantošanai.

(*) Piezīme: Saskaņā ar "Kvalitātes sarakstu" ir nosaukumi, kas atdalīti ar komatiem. No tipa nosaukums var būt vienkāršs (vienā vārdā) vai kompozītmateriālu - divos vārdos, kas atdalīti ar punktu.
Piemēram: Līnija, Struktūra, Dandterher shipdersettries.

Izstrādājot 1C platformu: Enterprise 8.3 Komentārs Teksts tiek parādīts arī konteksta ātrās procedūrās, funkcijās un to parametros. Lai iegūtu sīkāku informāciju, skatiet sadaļu "Kontekstuālā padoms, ievadot moduļa tekstus" 26. nodaļā "Attīstības rīki" dokumentācijā platformai.

Funkcijas apraksta piemērs ar vienu parametru:

// nosaka tikai lomu lomu pieejamību pašreizējam lietotājam, \\ t // un arī administratīvo tiesību pieejamība. // // parametri: // tamers - virkne - vārdu nosaukumi, kuru pieejamība ir pārbaudīta, atdalīta ar komatiem. // // Atgriešanās vērtība: // boolevo - patiesība, ja pašreizējam lietotājam ir pieejama vismaz viena no nosūtītajām lomām, // Vai nu viņam ir administratīvās tiesības. // // Piemērs: // Ja rably Access ("Extra masa calcounts, sūtīt"), tad ... // Funkcija Roll piekļuve (Namear nosaukumi) Eksportēt

Procedūras apraksta piemērs bez parametriem: \\ t

// notikumu apstrādātājā, tiek veikts dokumenta atjauninājums; // - Tabulas daļas tīrīšana, ja līgums ir norādīts ar Komisijas pārstāvi; // - pārbaudot pildījumu uzpildes darījumiem ar tabulu. preču daļas; // - sinhronizācija ar "pakārtoto" rēķinu; // - pircēja noliktavas un kārtības aizpildīšana tabulas daļās un atgriežas; - - tabulas daļas neizmantoto līniju dzēšana "sērijas numuri"; // - objekta moduļa mainīgā aizpildīšana. // pārrakstīšanas procedūra () beigu kontrole

6. Ja vēlaties komentēt procedūru vai funkciju, kas tiek izmantota ar kompilācijas direktīvu, vispirms jāpublicē komentārs un pēc tam -
kompilācijas direktīva. Piemēram:

// Procedūra - notikumu apstrādātājs "Izbraukšanas" veidlapas. // apstrādā veidlapas parametrus un aizpilda formas vērtību detaļas. // un veic arī šādas darbības: // ... // & Nasserver saglabāšanas procedūra (neveiksme, standarta darbs)

Šis komentāra izvietošanas stils ļauj jums vispirms pievērst uzmanību funkcijas definīcijai un apkopošanas direktīvai, un pēc tam - uz komentāru, ka pietiekams liels skaits līniju var ieņemt.

7. Procedūru kodekss un funkcijas jānošķir viena no otras moduļa tekstā ar tukšām stīgām.

Auto pasūtījumu komentāri uz procedūrām vai funkcijām ar apkopošanas direktīvām

Lai automātiski sakārtotu komentārus uz procedūrām vai funkcijām ar apkopošanas direktīvām, varat izmantot lietoto apstrādi Formatimedizerizpilation.epf.. Šim nolūkam jums ir nepieciešams:

  1. Izkraušanas konfigurācijas moduļi (konfigurācijas izvēlnes komanda -\u003e Izkraušanas konfigurācijas faili ...)
  2. Atvērt apstrādes režīms 1c: Uzņēmums un norādiet direktoriju, kurā moduļi tika izkrauti - tālāk, noklikšķiniet uz pogas "Format"
  3. Download moduļi konfigurācijā (konfigurācijas izvēlnes komandu -\u003e Lejupielādēt konfigurācijas failus ...)

Mēs atradām: procedūras paziņošanas un aprakstu piemērs bez parametriem, parametru procedūra pārdzīvošanai ()Atsaldēts, lai izmantotu dakšas 1C, kā veikt procedūru 1C, kura funkciju vai procedūru nosaukumi ir jālabo?, Izprast un lasīt kodu 1c procedūrā un funkciju, 1C 77 Funkcijas apraksts, komentārs par procedūras koda materiāliem 1C, 1C dokumentu procedūru un funkciju daudzums, procedūras un funkcijas


Es atvainojos iepriekš par patos anotāciju par "izvietošanu punktu", bet tas ir nepieciešams kaut kādā veidā jūs uz rakstu)), lai manu daļu, es centīšos abstraktu jūs joprojām attaisnotu savas cerības.

Īsi sakot, kas tas ir

Tas viss ir pazīstams arī, bet joprojām sākumā es jums atgādināšu, kā metodes parametrus var pārraidīt 1C. Tos var nosūtīt uz saites "un" nozīmi ". Pirmajā gadījumā mēs nosūtām tādu pašu vērtību metodei kā zvana punktā, un otrajā - tā kopijā.

Pēc noklusējuma 1C argumenti tiek nosūtīti pēc atsauces, un parametra izmaiņām metodē tiks novērota no ārējās metodes. Šeit vēl vairāk izpratne ir atkarīga no tā, ko jūs saprotat ar vārdu "Mainīt parametru". Tātad, ir atkārtoti uzdevums un nekas vairāk. Turklāt uzdevums var būt netiešs, piemēram, zvanot uz platformas metodi, kas atgriež kaut ko izejas parametrā.

Bet, ja mēs nevēlamies, lai mūsu parametrs tiks nosūtīts pēc atsauces, tad mēs varam precizēt atslēgvārdu pirms parametra Zīme

Procedūra izziņas (vērtības parametrs) parametrs \u003d 2; Ekstrokama parametrs \u003d 1; Radīšana (parametrs); Ziņojums (parametrs); // iziet 1.

Viss darbojas kā solīts - izmaiņas (un pareizāk teikt "nomaiņa") Parametra vērtība neizraisa vērtību, kas atrodas ārpus metodes.

Nu, kas ir joks?

Interesanti momenti sākas, kad mēs sākam pārraidīt, jo parametri nav primitīvi veidi (līnijas, numuri, datumi, uc), bet objekti. Tas ir, ja "mazais" un "dziļais" kopija objekta, kā arī norādes (nevis attiecībā uz C ++, un kā abstraktiem deskriptoriem (rokturi), pop up.

Nosūtot objektu (piemēram, tabulas) ar atsauci, mēs nosūtām vērtību rādītāja vērtību (daži rokturi), kas atmiņā platformas "tur" objektu. Nosūtot vērtību, platforma veiks kopiju šī rādītāja.

Citiem vārdiem sakot, ja, nododot objektu, atsaucoties, metodē mēs piešķiram vērtību parametram "masīvs", tad pie zvana vietā, mēs iegūstam masīvu. Atkārtoti piešķirot nosūtīto vērtību, ir redzams no zvanu vietas.

Procedūras ārstēšana (parametrs) parametrs \u003d jauns masīvs; Extrog Cell tabula \u003d jauna tabula; Ārstēšana (tabula); Ziņojums (Tinch (tabula)); // ielādēt masīvu

Ja mēs sniegsim objektu pēc vērtības, tad pie zvana vietā, mūsu galds nepazudīs.

Objekta saturs un tā stāvoklis

Kad vērtība tiek pārraidīta, ne viss objekts tiek kopēts, bet tikai tā rādītāja. Objekta gadījums paliek nemainīgs. Tas nav svarīgi, kā jūs nodot objektu ar atsauci vai pēc vērtības - tīrīšanas vērtību vērtības radīs tabulas tīrīšanu. Šī tīrīšana būs redzama visur, jo Objekts bija viens un unikāls un neatkarīgi no tā, kā tas tika nosūtīts uz metodi.

Procedūras apstrāde (parametrs) Parametrs. Darbojas (); Extrog Cell tabula \u003d jauna tabula; Tabula. Adīts (); Ārstēšana (tabula); Ziņojums (tabula. Skaits ()); // izņemt 0.

Nosūtot objektus uz metodēm, platforma darbojas ar norādēm (parastie, nevis tiešie analogi no C ++). Ja objekts tiek nosūtīts pēc atsauces, tad 1C virtuālā mašīna atmiņas šūnu, kurā šis objekts atrodas, var pārrakstīt cits objekts. Ja objekts tiek pārraidīts pēc vērtības, rādītājs tiek kopēts un pārrakstīts objekts nerada pārrakstīt atmiņas kameru ar avota objektu.

Tajā pašā laikā jebkuras izmaiņas valsts Objekts (tīrīšana, pievienošana īpašības utt.) Izmaina pats objekts, un kopumā tas nav saistīts ar to, kā un kur objekts tika nosūtīts. Objekta instances statuss ir mainījies, tas var būt ķekars "atsauce" un "vērtībām", bet gadījums vienmēr ir vienāds. Noslēdzot objektu uz metodi, mēs neradām visu objektu kopiju.

Un tas vienmēr ir taisnība, izņemot ...

Klienta-servera mijiedarbība

Platforma ir ļoti pārredzami īstenota ar servera zvaniem. Mēs vienkārši izsaucam metodi, un zem pārsega platformas serializes (pārvēršas virknē) visi metodes parametri, pārraida serveri, un pēc tam atgriež izejas parametrus atpakaļ klientam, kur viņi deserialize un dzīvo, it kā viņi to nedarītu Iet uz jebkuru serveri.

Kā jūs zināt, ne visi platformas objekti ir serializable. No šejienes, ka ierobežojums pieaug, ka ne visus objektus var pārsūtīt uz servera metodi no klienta. Ja jūs pārraidīsiet neatvieglotu objektu, platforma sāks zvērēt sliktus vārdus.

  • Nepārprotami paziņo par plānotāja nodomiem. Aplūkojot metodes parakstu, jūs varat skaidri teikt, kuri parametri ir ievadi, un kāda jauda. Šo kodu ir vieglāk lasīt un pavadīt
  • Lai mainītu "saite" parametru uz servera, tas ir redzams pie zvana punkta uz klientu,arametri, kas nosūtīti uz serveri ar atsauci, platforma noteikti atgriezīsies klientā, lai nodrošinātu raksta sākumā aprakstīto uzvedību. Ja parametrs nav nepieciešams atgrieztos, būs satiksmes pārsniegšana. Lai optimizētu datu apmaiņu, parametrus, kuru vērtības mums nav nepieciešama izejas, jums ir nepieciešams, lai atzīmētu vārdu nozīmi.

Otrais punkts ir ievērojams šeit. Lai optimizētu satiksmi, platforma neatgriežas par parametra vērtību klientam, ja parametrs ir atzīmēts ar vārda vērtību. Tas viss ir brīnišķīgi, bet ved uz interesantu ietekmi.

Kā jau teicu, kad objekts tiek pārsūtīts uz serveri, serializācija notiek, t.i. Tiek veikta "dziļa" objekta kopija. Un ja ir vārdi Vērtībaobjekts nebūs no servera atpakaļ uz klientu. Mēs salocām šos divus faktus un saņemam šādu informāciju:

Un grind procedūras veicināšana (parametrs) parametrs. Ieteikt (); Ekstrucresses & Nasserver procedūra iepazīšanās (vērtības parametra) parametrs. Ieteikt (); Ekstrēms un sūdzību procedūra atpazīšanaCleant (vērtības parametrs) parametrs. Ieteikt (); Beigu kontrolieri un prasības procedūra Pārbaudiet signālu () List1 \u003d jaunas snaps; List1. Pievienot ("hi"); List2 \u003d List1.copy (); List3 \u003d List1.copy (); // objekts ir pilnībā kopēts, // nosūtīts uz serveri, tad atgriežas. // Saraksta tīrīšana ir redzama ātrās (saraksta1) post punktā; // objekts tiek kopēts pilnībā, // iet uz serveri. Atpakaļ nav atgriešanās. // saraksta tīrīšana nav redzama pie zvana punktā izveides (saraksts2); // kopēt tikai objekta rādītāju // saraksta tīrīšana ir redzama piezvanības zvanu punktā (saraksts3); Ziņojums (saraksts1. N'tvice ()); Ziņojums (saraksts2. Numurs ()); Ziņojums (saraksts3. n'trb ()); Ekstrēmija

Kopsavilkums

Ja īsi, ir iespējams apkopot šādi:

  • Pārskaitījums pēc atsauces ļauj "sviedri" objektu ar pilnīgi citu objektu
  • Pārraide nav atļauts "sviedri" objektu, bet izmaiņas iekšējā stāvoklī objekta būs redzama, jo Strādāt ar to pašu objekta gadījumu
  • Kad servera zvans, darbs nāk ar dažādiem objekta objektiem, jo Tika veikta dziļa kopēšana. Atslēgvārds Vērtība Atspējot servera piemēru kopēšanu atpakaļ klientam, un mainot objekta iekšējo stāvokli serverī neradīs līdzīgas izmaiņas klientā.

Es ceru, ka šis vienkāršais noteikumu saraksts ļaus jums vieglāk atrisināt strīdus ar kolēģiem par parametru nosūtīšanu "pēc vērtības" un "uz saites"