Apa parameter formal dari prosedur 1C. Deskripsi prosedur dan fungsi

Fungsi 1C dan prosedur dalam 1C bekerja sama dengan bahasa lain - fungsinya adalah subrutin bernama untuk menelepon dari lokasi kode perangkat lunak lain.

Prosedur untuk mendeklarasikan fungsi dalam modul sewenang-wenang (yaitu, dimungkinkan dalam teks prosedur yang terletak di awal modul untuk menggunakan prosedur yang teksnya akan berlokasi di bawah ini dalam modul ini). Demikian pula, fungsi 1C dapat diekspor.

Untuk "keluar" dari eksekusi fungsi dan prosedur 1C, gunakan perintah "kembali;". Fungsi (berbeda dengan prosedur) "mengembalikan" hasil perhitungan, yaitu, perlu untuk menulis "nilai pengembalian;". Fungsi 1C tidak diketik, kemudian mereka dapat mengembalikan nilai berbagai jenis, tergantung pada parameter atau kondisi.

Fungsi ini berbeda dari prosedur untuk kemampuan mengembalikan hasil perhitungan, misalnya:

Fungsi fungsi1 (parameter)
Parameter Kembali * 2;
Tujuan ..

Variabel1 \u003d fungsi1 (10);
// variabel1 akan sama dengan 20

Parameter dari fungsi dan prosedur 1C adalah tautan ke variabel yang ada di situs panggilan. "Referensi" berarti ketika mengubah nilai parameter "di dalam" fungsi 1C, itu akan diubah dan "di luar". Sehingga ini tidak terjadi - parameter ditransmisikan dengan nilai AC. Namun, ini tidak berfungsi dengan nilai objek (daftar, tabel, objek basis data), mereka masih akan ditransmisikan dengan referensi.

Saat mentransmisikan parameter ke prosedur / fungsi, itu ditransmisikan "dengan referensi". Ini berarti bahwa mengubahnya dalam prosedur, Anda mengubah nilainya saat mengakses setelah akhir fungsi 1C. Dengan demikian, contoh sebelumnya dapat ditulis seperti ini:

Prosedur prosedur1 (parameter)
Parameter \u003d parameter * 2;
Extrudresses.

Variabel1 \u003d 10;
Prosedur1 (variabel1);
Laporan (variabel1);
// hasilnya akan menjadi 20

Untuk masuk ke prosedur, nilai variabel, dan bukan miliknya sendiri:

Prosedur Prosedur1 (Parameter Nilai)
// Tindakan ..
Extrudresses.

Saat bekerja dengan benda (direktori, dokumen), harus diingat bahwa di dalam 1C / prosedur prosedur 1C dapat dilakukan.
Jika fungsi 1C / prosedur 1C beberapa parameter, maka yang tidak perlu dapat dilewati (menentukan koma jika parameter hilang di tengah), itu akan ditransmisikan atau tidak ditentukan (lihat di bawah) atau nilai default:

Fungsi fungsi1 (parameter1, parameter2, parameter3 \u003d "nilai string")
// lakukan sesuatu
Tujuan ..

// memanggil fungsi tanpa beberapa parameter
// parameter2 akan sama dengan tidak pasti
// parameter3 akan sama dengan "nilai string"
Fungsi1 (10);

// memanggil fungsi tanpa parameter kedua
Fungsi1 (10, "nilai");

Seperti yang disebutkan sebelumnya, prosedur 1C digunakan sebagai penangan acara yang timbul dari pengguna dengan formulir (membuka, menutup, menekan tombol, dll.) Atau pengoperasian platform (mulai, selesai, dll). Kemungkinan jenis handler formulir atau elemen-elemennya dapat dilihat pada properti - dengan mengklik elemen formulir yang sesuai (dan srolling jendela properti ke bawah). Jenis penangan dalam modul objek dapat dilihat menggunakan daftar drop-down pada panel di Configurator - di mana daftar bahkan peristiwa yang tidak terbatas dan sudah ditampilkan. Dalam berbagai peristiwa, berbagai parameter, saat menambahkan handler 1C, secara otomatis meresepkan daftar parameter.

Built-in 1C: Perusahaan mendukung dua cara untuk mengirimkan parameter ke prosedur dan fungsi: Parameter yang mentransmisikan dengan referensi dan mengirimkan parameter berdasarkan nilai.

Secara default, dalam bahasa yang tertanam 1c: perusahaan 8 mentransfer parameter ke prosedur dan fungsi dengan referensi. Ini berarti bahwa mengubah parameter formal di dalam prosedur atau fungsi akan tercermin pada nilai parameter aktual yang ditransmisikan ketika prosedur atau fungsi disebut.


Prosedur prosedur1 (parameter formal1)

Formalpameter1 \u003d 2 * 3;

Extrudresses.

Aktualparameter \u003d 10;
Procedure1 (parameter aktual);

// Nilai 6 akan ditampilkan - perubahan formal
// parameter di dalam prosedur mempengaruhi perubahan

// Prosedur Panggilan: Secara default, parameternya ditransmisikan
// tautan!

Parameter transfer berdasarkan nilai

Ketika parameter yang disebut prosedur atau fungsi ditransmisikan, perubahan nilai parameter formal di dalam prosedur atau fungsi tidak mempengaruhi parameter aktual yang ditransmisikan ketika prosedur atau fungsi disebut. Perhatikan bahwa parameter harus ditransmisikan berdasarkan nilai, dilakukan dengan menggunakan kata kunci dari nilai.

Contoh:


Prosedur prosedur2 (nilai parameter formal)

Formalpameter1 \u003d 2 * 3;

Extrudresses.

Aktualparameter \u003d 10;
Procedure2 (parameter aktual);

// Nilai 10 akan ditampilkan - perubahan formal
// parameter di dalam prosedur tidak mempengaruhi perubahan
// Nilai parameter aktual yang ditransmisikan saat
// Prosedur Panggilan: Parameter ditransmisikan berdasarkan nilai!
Laporan (parameter aktual);

Fitur variabel transmisi dari berbagai jenis data berdasarkan nilai

Transfer variabel dari berbagai jenis data dengan nilai memiliki karakteristiknya sendiri. Mereka terdiri dari bekerja dengan metode dan sifat-sifat konteks parameter formal, keadaan parameter aktual yang ditransmisikan ketika prosedur atau fungsi disebut.

Pertimbangkan sebagai contoh situasi di mana parameter prosedur yang ditransmisikan oleh nilai adalah tabel nilai. Di dalam prosedur yang disebut, proses stroke () instance baru dari tabel nilai dibuat, yang menambah tiga baris. Ini tidak mempengaruhi status tabel nilai TK yang ditransmisikan sebagai parameter yang sebenarnya saat memanggil prosedur untuk handvert ():


Prosedur pemrosesan (tabel tanda)


Nilai tab \u003d tabel baru;

// tambahkan dua speaker ke daftar nilai
Tab Compex. Tablok. Addly ("Column1");
Tab Compells. Addly ("Column2");


Untuk siklus n \u003d 1 hingga 3
Novstok \u003d nilai tab. Addly ();
Novstok.colonka1 \u003d "kolom";
Novstok.colonka2 \u003d p;
Endcycle;

Extrudresses.

// Buat tabel baru nilai
Tk \u003d tabel baru;



// tambahkan beberapa baris ke tabel nilai
Untuk n \u003d 1 hingga 10 siklus
Novstok \u003d tz. Addly ();

Novstok.colonka3 \u003d p;
Endcycle;

// akan ditarik 10


Diperlakukan (TK);

// akan ditarik 10: di dalam prosedur prosedur
// dalam parameter formal menyelamatkan tabel nilai baru

Pertimbangkan sebagai contoh situasi di mana parameter prosedur yang ditransmisikan oleh nilai adalah tabel nilai. Di dalam prosedur yang dihasilkan, tabel jaminan () tabel mentransmisikan sebagai parameter saat memanggil prosedur runtuh:


// Diindikasikan bahwa transfer parameter nilai tabel dilakukan dengan nilai
Colapse prosedur: sinyal tabel)

// Kami akan dengan tabel nilai pada kolom kolom1 dan kolom3
Ringkasan Tab ("Column1", "Column3");

Extrudresses.

// Buat tabel baru nilai
Tk \u003d tabel baru;

// tambahkan tiga kolom ke daftar nilai
Tk.colonki. Addly ("kolom1");
Tk.colonki. Addly ("kolom2");
Tk.colonki. Addly ("kolom3");

// tambahkan beberapa baris ke tabel nilai
Untuk n \u003d 1 hingga 10 siklus
Novstok \u003d tz. Addly ();
Novstok.colonka1 \u003d "kolom1";
Novstok.colonka2 \u003d "kolom2";
Novstok.colonka3 \u003d p;
Endcycle;

// akan ditarik 10
Laporkan ("Jumlah elemen dalam TK untuk memutar:" + tz. N'tr. ());

// Confres prosedur dengan mengirimkan parameter aktual TK dengan nilai
Penyebaran (TK);

// tabel nilai sekarang diminimalkan: nilai akan ditampilkan 1
Laporkan ("Jumlah elemen dalam TK setelah melipat:" + TK. Kebangsaan ());

Dengan demikian, transmisi parameter aktual berdasarkan nilai dalam kasus ini tidak mengarah pada pembuatan salinan tabel nilai. Ketika bekerja dengan properti dan metode nilai nilai, kami bekerja dengan properti dan metode tabel nilai yang digunakan ketika prosedur disebut diperintahkan ().

Perbedaan untuk semua jenis saat mentransmisikan parameter prosedur atau fungsi dengan referensi atau nilai dimanifestasikan dalam penugasan parameter sebenarnya dari prosedur atau fungsi nilai baru. Memanggil properti dan metode konteks parameter yang sebenarnya, jika ada, mempengaruhi parameter formal, terlepas dari apakah itu ditransmisikan dengan referensi atau nilai.

1. Deskripsi prosedur dan fungsi disarankan untuk melakukan dalam bentuk komentar kepada mereka. Kebutuhan untuk mengomentari bagian-bagian tertentu dari prosedur dan fungsi harus ditentukan oleh pengembangan berdasarkan kompleksitas dan non-standar dari bagian spesifik kode.

2. Komentar wajib memerlukan prosedur dan fungsi modul yang termasuk dalam antarmuka perangkat lunak - prosedur dan fungsi tersebut dimaksudkan untuk digunakan dalam subsistem fungsional lainnya (atau aplikasi lain), yang dapat dilakukan pengembang lain, sehingga mereka harus baik-baik saja didokumentasikan.

Lihat juga:Pembatasan penggunaan prosedur dan fungsi ekspor dan penggunaan prosedur ekspor dan fungsi dalam bentuk modul

4. Komentar harus dihindari yang tidak memberikan penjelasan tambahan tentang pengoperasian prosedur non-ekspor (fungsi).
Misalnya, salah:

// prosedur - Acara prosesor "output" formulir // & celah prosedur spircuit () // Prosedur Pemrosesan "Hitung" // & prosedur yang benar menghitung () // Prosedur Pemrosesan acara "Pengenaan" dari elemen edit Tolenge Tile // & klausul edited prosedur entriTolkovdiahlepsion (elemen)

Dalam contoh-contoh ini, komentar bersifat berlebihan, karena jelas dari nama-nama prosedur yang ini adalah penangan acara. Dan dengan deskripsi dan penugasan parameter dapat ditemukan dalam sintaks asisten.

// fungsi pengembalian sesuai dengan dokumen Fungsi Clauredency (data)

Komentar ini tidak memberikan informasi tambahan tentang fungsinya.

5. Komentar ditempatkan sebelum pengumuman prosedur (fungsi) dan memiliki formulir berikut.

5.1. Bagian "Deskripsi"berisi deskripsi singkat verbal tentang tujuan dan / atau prinsip-prinsip prosedur (fungsi). Ini mungkin satu-satunya bagian untuk prosedur tanpa parameter.

5.2. Bagian "Parameter"menggambarkan parameter prosedur (fungsi). Jika tidak, bagian itu dilewati. Didahului dengan string "parameter:" , kemudian dari baris baru ada deskripsi semua parameter.

5.2.1. Deskripsi parameter Ini dimulai dengan baris baru, maka nama parameter, kemudian tanda hubung dan daftar tipe (*), diikuti oleh tanda hubung dan deskripsi teks dari parameter.
Sebagai contoh:

// Parameter:

Juga, untuk setiap parameter, Anda dapat menentukan satu atau lebih deskripsi tambahan dari jenis parameter. Setiap deskripsi tambahan dimulai dengan baris baru, maka tanda hubung wajib, kemudian daftar jenis parameter (*), diikuti oleh tanda hubung dan deskripsi teks.
Sebagai contoh:

// Parameter: // Detail - String - Nama-nama detail yang tercantum melalui koma. // Misalnya, "kode, nama, induk." // - struktur, struktur tetap - sebagai kunci yang dikirimkan // bidang nama samaran untuk struktur yang dikembalikan dengan hasilnya, // dan sebagai nilai (opsional), nama bidang aktual di tabel. // Jika nilainya tidak ditentukan, nama bidang diambil dari tombol. // - Array, FixedMassiv - array alat peraga.

5.3. Bagian "Nilai Pengembalian"menggambarkan jenis dan konten fungsi fungsi. Untuk prosedur, bagian ini hilang. Didahului dengan string "nilai pengembalian:". Kemudian dari baris baru jenis jenis (*), maka tanda hubung dan teks.
Sebagai contoh:

// nilai kembali: // boolevo - kebenaran, jika setidaknya salah satu peran yang ditransmisikan tersedia untuk pengguna saat ini,

5.4. Bagian "Contoh" Berisi contoh menggunakan prosedur atau fungsi. Disiapkan oleh string "Contoh:". Selanjutnya, dari baris baru contoh penggunaan.

(*) catatan: Di bawah "Daftar Kualitas" berarti nama-nama jenis yang dipisahkan oleh koma. Nama jenisnya mungkin sederhana (dalam satu kata) atau komposit - dalam dua kata yang dipisahkan dengan satu titik.
Sebagai contoh: Garis, Struktur, Danderther Shipdersettries..

Saat berkembang pada platform 1C: Teks komentar Enterprise 8.3 juga ditampilkan dalam prosedur, fungsi, dan parameternya yang cepat kontekstual. Untuk detailnya, lihat bagian "Petunjuk Kontekstual saat memasuki teks modul" Bab 26 "Alat Pengembangan" dalam dokumentasi untuk platform.

Contoh deskripsi fungsi dengan satu parameter:

// Menentukan ketersediaan peran hanya peran untuk pengguna saat ini, // dan juga ketersediaan hak administrasi. // // parameter: // Tamers - nama string - nama, ketersediaan yang diperiksa, dipisahkan oleh koma. // // nilai kembali: // boolevo - kebenaran, jika setidaknya salah satu peran yang ditransmisikan tersedia untuk pengguna saat ini, // Dia memiliki hak administratif. // // Contoh: // Jika akses rolly ("maksimal tambahan, kirim") maka ... // fungsi akses gulungan (nama namear) ekspor

Contoh deskripsi prosedur tanpa parameter:

// di pawang acara, pembaruan dokumen dilakukan; // - Membersihkan bagian tabel layanan, jika kontrak ditentukan dengan agen Komisi; // - Memeriksa pengisian unit transaksi yang diperlukan dalam tabel. bagian barang; // - sinkronisasi dengan faktur "bawahan"; // - Mengisi gudang dan pesanan pembeli di bagian tabel barang dan pengembalian; // - Menghapus garis-garis tabel yang tidak digunakan "nomor seri"; // - mengisi variabel modulus objek. // prosedur untuk menimpa () kontrol akhir

6. Jika Anda ingin mengomentari prosedur atau fungsi yang digunakan dengan arahan kompilasi, Anda pertama-tama harus memposting komentar dan kemudian -
arahan kompilasi. Sebagai contoh:

// Prosedur - Acara Handler "Keberangkatan". // memproses parameter formulir dan mengisi detail nilai bentuk. // dan juga melakukan tindakan berikut: // ... // & Prosedur Pelestarian Nasserver (Kegagalan, Standardworking)

Gaya penempatan komentar ini memungkinkan Anda untuk terlebih dahulu memperhatikan definisi fungsi dan arahan kompilasi, dan kemudian - pada komentar yang cukup banyak baris dapat menempati.

7. Kode prosedur dan fungsi harus dipisahkan satu sama lain dalam teks modul dengan string kosong.

Komentar pemesanan otomatis ke prosedur atau fungsi dengan arahan kompilasi

Untuk secara otomatis mengatur komentar ke prosedur atau fungsi dengan arahan kompilasi, Anda dapat menggunakan pemrosesan yang diterapkan Formatimedirizizpilation.epf.. Untuk ini yang Anda butuhkan:

  1. Bongkar modul konfigurasi (perintah menu konfigurasi -\u003e bongkar file konfigurasi ...)
  2. Mode pemrosesan terbuka 1c: Enterprise. dan tentukan direktori di mana modul diturunkan - Selanjutnya, klik tombol "Format"
  3. Unduh modul dalam konfigurasi (perintah menu konfigurasi -\u003e Unduh file konfigurasi ...)

Kami menemukan: contoh pengumuman dan deskripsi prosedur tanpa parameter, prosedur Parameter untuk Overliving ()Didinginkan untuk penggunaan garpu untuk 1C, bagaimana cara membuat prosedur dalam 1C, nama fungsi atau prosedur yang perlu dikoreksi?, Untuk memahami dan membaca dalam kode 1c prosedur dan fungsi, 1C 77 Deskripsi fungsi, komentar pada bahan prosedur Kuantitas, prosedur dan fungsi dalam 1C, 1C dokumen prosedur dan fungsi


Saya minta maaf sebelumnya untuk Pathos Anotation tentang "penempatan poin", tetapi perlu entah bagaimana membawa Anda ke dalam artikel)) untuk bagian saya, saya akan mencoba untuk abstrak Anda masih membenarkan harapan Anda.

Singkatnya tentang apa itu

Semua ini juga diketahui, tetapi masih pada awalnya saya akan mengingatkan Anda bagaimana parameter metode dapat ditransmisikan dalam 1C. Mereka dapat ditransmisikan "pada tautan" dan "makna". Dalam kasus pertama, kami mengirimkan nilai yang sama dengan metode seperti pada titik panggilan, dan pada detik - salinannya.

Secara default, argumen 1C ditransmisikan dengan referensi, dan perubahan dalam parameter di dalam metode akan dilihat dari metode luar. Di sini lebih memahami masalah ini tergantung pada apa yang sebenarnya Anda pahami di bawah kata "Ubah Parameter". Jadi, ada penugasan ulang dan tidak lebih. Selain itu, tugas dapat implisit, misalnya, dengan memanggil metode platform yang mengembalikan sesuatu dalam parameter output.

Tetapi jika kita tidak ingin parameter kita ditransmisikan dengan referensi, maka kita dapat menentukan kata kunci sebelum parameter Tanda

Prosedur untuk parameter kognisi (parameter nilai) \u003d 2; Parameter ekstrolida \u003d 1; Penciptaan (parameter); Laporan (parameter); // akan keluar 1.

Semuanya berfungsi sebagaimana dijanjikan - perubahan (dan lebih benar mengatakan "pengganti") nilai parameter tidak mengarah pada perubahan nilai di luar metode.

Nah, apa lelucon itu?

Momen yang menarik dimulai ketika kita mulai mentransmisikan sebagai parameter bukan tipe primitif (garis, angka, tanggal, dll.), Tetapi objek. Di sinilah salinan objek "kecil" dan "dalam", serta pointer (bukan dalam hal C ++, dan sebagai deskriptor abstrak (pegangan), muncul.

Saat mentransmisikan objek (misalnya, tabel) dengan referensi, kami mentransmisikan nilai nilai pointer (beberapa pegangan), yang dalam memori platform "menampung" objek. Saat mentransmisikan nilai, platform akan membuat salinan pointer ini.

Dengan kata lain, jika, melewati objek dengan referensi, dalam metode kami menetapkan nilai ke parameter "array", maka pada titik panggilan, kami memperoleh array. Menugaskan kembali nilai yang ditransmisikan oleh referensi terlihat dari situs panggilan.

Parameter pengobatan prosedur (parameter) \u003d array baru; EXTOG CELL TABLEME \u003d Tablement Baru; Perawatan (tabel); Laporkan (Tinch (Tabel)); // muat array

Jika, kami akan memberikan objek berdasarkan nilai, maka pada titik panggilan, tabel kami tidak akan hilang.

Isi objek dan kondisinya

Ketika nilai ditransmisikan, bukan seluruh objek disalin, tetapi hanya pointernya. Contoh objek tetap sama. Tidak masalah bagaimana Anda melewati objek dengan referensi atau dengan nilai - membersihkan nilai-nilai nilai akan menghasilkan pembersihan tabel. Pembersihan ini akan terlihat di mana-mana, karena Objek itu adalah satu dan unik dan tidak peduli bagaimana hal itu ditransmisikan ke metode.

Parameter pemrosesan prosedur (parameter). Operasikan (); EXTOG CELL TABLEME \u003d Tablement Baru; Tabel. Addly (); Perawatan (tabel); Laporan (tabel. Angka ()); // tarik 0.

Saat mentransmisikan objek ke metode, platform beroperasi dengan pointer (analog konvensional, bukan langsung dari C ++). Jika objek ditransmisikan dengan referensi, maka sel memori mesin virtual 1C, di mana objek ini terletak, dapat ditimpa oleh objek lain. Jika objek ditransmisikan berdasarkan nilai, pointer disalin dan menimpa objek tidak mengarah untuk menimpa sel memori dengan objek sumber.

Pada saat yang sama setiap perubahan negara Objek (Pembersihan, Menambahkan Properti, dll.) Mengubah objek itu sendiri, dan secara umum tidak terhubung dengan bagaimana dan di mana objek ditransmisikan. Status instance objek telah berubah, mungkin ada banyak "referensi" dan "nilainya", tetapi instance selalu sama. Dengan melewati objek dengan metode, kami tidak membuat salinan seluruh objek.

Dan itu selalu benar, kecuali ...

Interaksi Klien-Server

Platform ini diimplementasikan dengan sangat transparan oleh panggilan server. Kami hanya memanggil metode ini, dan di bawah kapulasi platform serial (berubah menjadi string) semua parameter metode, mentransmisikan ke server, dan kemudian mengembalikan parameter output kembali ke klien, di mana mereka deserialisasi dan hidup, seolah-olah mereka tidak melakukannya Pergi ke server mana pun.

Seperti yang Anda ketahui, tidak semua objek platform serial. Dari sinilah pembatasan bertambahnya bahwa tidak semua objek dapat ditransfer ke metode server dari klien. Jika Anda mengirimkan objek yang tidak lega, platform akan mulai bersumpah dengan kata-kata buruk.

  • Pengumuman eksplisit dari niat programmer. Melihat tanda tangan metode, Anda dapat dengan jelas mengatakan parameter mana yang input, dan output apa. Kode ini lebih mudah untuk dibaca dan ditemani
  • Agar mengubah parameter "tautan" di server, terlihat pada titik panggilan pada klien,arameter ditransmisikan ke server dengan referensi, platform pasti akan kembali ke klien untuk memastikan perilaku yang dijelaskan di awal artikel. Jika parameter tidak perlu dikembalikan, akan ada overrun lalu lintas. Untuk mengoptimalkan pertukaran data, parameter yang nilainya tidak perlu kita keluarkan, Anda perlu menandai arti kata.

Poin kedua terkenal di sini. Untuk mengoptimalkan lalu lintas, platform tidak akan mengembalikan nilai parameter ke klien jika parameter ditandai dengan nilai kata. Semua ini luar biasa, tetapi mengarah ke efek yang menarik.

Seperti yang saya katakan, ketika objek ditransfer ke server, serialisasi terjadi, I.E. Salinan objek "dalam" dilakukan. Dan jika ada kata-kata Nilaiobjek tidak akan beralih dari server kembali ke klien. Kami melipat dua fakta ini dan mendapatkan yang berikut:

& Parameter prosedur prosedur (parameter). Rekomendasikan (); Prosedur ekstrudresses & nasserver untuk parameter kenalan (value parameter). Merekomendasikan (); Parameter Pengenalan & Parameter Nilai Pengakuan Extrudresses (Value Parameter). Rekomendasikan (); Pengendalian Akhir & Prosedur Klaim Pemeriksaan sinyal () daftar1 \u003d buncis baru; LIST1. Tambahkan ("Hai"); LIST2 \u003d LIST1.COPY (); LIST3 \u003d LIST1.COPY (); // Objek disalin sepenuhnya, // mentransmisikan ke server, kemudian kembali. // Membersihkan daftar terlihat di titik pos cepat (LIST1); // Objek disalin sepenuhnya, // melewati ke server. Kembali bukan pengembalian. // Membersihkan daftar tidak terlihat pada titik panggilan kreasi (LIST2); // Salin hanya pointer objek // Membersihkan daftar yang terlihat pada titik panggilan kognisi (LIST3); Laporan (daftar1. N'tvice ()); LAPORAN (LIST2. NOMOR ()); LAPORAN (LIST3. N'TRB ()); Extrudresses.

Ringkasan

Jika singkat, dimungkinkan untuk meringkas sebagai berikut:

  • Transfer dengan referensi memungkinkan Anda untuk "berkeringat" objek dengan objek yang sama sekali berbeda
  • Transmisi tidak diperbolehkan untuk "berkeringat" objek, tetapi perubahan keadaan internal objek akan terlihat, karena Bekerja dengan instance objek yang sama
  • Ketika panggilan server, pekerjaan dilengkapi dengan objek yang berbeda dari objek, karena Salinan dalam dilakukan. Kata kunci. Nilai Nonaktifkan Menyalin instance server kembali ke klien, dan mengubah keadaan internal objek pada server tidak akan mengarah pada perubahan serupa pada klien.

Saya berharap bahwa daftar aturan sederhana ini akan memungkinkan Anda untuk lebih mudah untuk menyelesaikan perselisihan dengan kolega tentang transmisi parameter "berdasarkan nilai" dan "pada tautan"