1C prosedürün resmi parametreleri nedir. Prosedürlerin ve fonksiyonların açıklaması

Fonksiyonlar 1C ve 1C'deki prosedürler diğer dillere benzer şekilde çalışır - işlev, diğer yazılım kodu konumlarından aramak için adlandırılmış bir alt rutindir.

Keyfi modülündeki (yani, bu modülün altında bulunan prosedürleri kullanmak için modülün başında bulunan prosedürün metinde mümkündür. Benzer şekilde, 1C fonksiyonları dışa aktarılabilir.

1C işlevinin ve prosedürlerin yürütülmesinden "çıkmak" için "İade;" komutunu kullanın. İşlev (prosedürün aksine) "hesaplamaların sonucunu döndürür, yani" Dönüş değeri; "yazmak gerekir. 1C işlevleri yazılmamış, ardından parametrelere veya koşullara bağlı olarak, farklı türlerin değerini döndürürler.

İşlev, örneğin hesaplamaların sonucunu döndürme yeteneği için prosedürden farklıdır:

İşlev Fonksiyonu1 (Parametre)
Dönüş parametresi * 2;
Sonlandırma

Değişken1 \u003d fonksiyon1 (10);
// değişken1 20'ye eşit olacak

1C fonksiyon ve prosedürlerin parametreleri, arama sitesinde bulunan değişkenlere bağlantılardır. "Referans", "İç" Fonksiyon 1C parametresinin değerini değiştirirken, değiştirilecek ve "dış" anlamına gelir. Böylece bu olmaz - parametre AC'nin değeri ile iletilir. Bununla birlikte, bu nesne değerleri (listeler, tablolar, veritabanı nesneleri) ile çalışmaz, halen referans olarak iletilecektir.

Parametreyi prosedüre / fonksiyona iletirken, "referans" iletilir. Bu, prosedür içinde değiştirdiği anlamına gelir, 1C işlevinin sonundan sonra erişirken değerini değiştirirsiniz. Böylece, önceki örnek şöyle yazılabilir:

Prosedür Prosedürü1 (Parametre)
Parametre \u003d parametre * 2;
Ekstrüdreler

Değişken1 \u003d 10;
Prosedür1 (değişken1);
Rapor (değişken1);
// sonuç 20 olacak

İşlemin içine geçmek, değişkenin değeri, kendi değil:

Prosedür Prosedürü1 (Değer parametresi)
//hareketler..
Ekstrüdreler

Nesnelerle çalışırken (dizinler, belgeler), 1C prosedürün 1C / prosedürünün gerçekleştirilebileceği unutulmamalıdır.
1C / prosedür işlevi 1C çoklu parametrelerse, gereksiz yere atlanabilir (parametre ortada eksikse, virgül belirlemek), iletilecek veya tanımlanacak (aşağıya bakınız) veya varsayılan değer:

İşlev fonksiyonu1 (parametre1, parametre2, parametre3 \u003d "string değeri")
// bir şey yap
Sonlandırma

// bazı parametreler olmadan bir fonksiyon çağırmak
// parametre2 belirsizliğe eşit olacaktır.
// parametre3 "string değerine" eşit olacaktır
Fonksiyon1 (10);

// İkinci bir parametre olmadan bir işlevi çağırmak
Fonksiyon1 (10, "değer");

Daha önce de belirtildiği gibi, 1C prosedürleri, kullanıcıdan bir form (açılış, kapatma, basma düğmeleri vb.) Veya platformun çalışması (başlangıç, tamamlama vb.) İle ortaya çıkan olay işleyicileri olarak kullanılır. Olası form işleyicileri veya elemanları, özelliklerde görülebilir - formun uygun elemanını tıklatarak (ve Özellikler penceresini kapatın). Nesne modülündeki işleme tipleri, konfigüratördeki paneldeki açılır liste kullanılarak görülebilir - nerede belirsiz ve zaten belirli olayların listesi görüntülenir. Farklı olaylarda, bir 1C işleyici eklerken, çeşitli parametrelerde, bir parametre listesini otomatik olarak reçete eder.

Dahili 1C: İşletmeler, parametreleri prosedürlere ve fonksiyonlara iletmenin iki yolunu desteklemektedir: parametreleri referans olarak iletir ve parametreleri değere göre iletir.

Varsayılan olarak, gömülü dilde 1C: İşletmeler 8 Parametreleri prosedürlere ve işlevlere referansla aktarma. Bu, prosedürün veya işlev içindeki resmi parametrenin değiştirilmesi, prosedür veya işlev çağrıldığında iletilen gerçek parametrenin değerine yansıtılacağı anlamına gelir.


Prosedür prosedürü1 (resmi parametre1)

Formalpameter1 \u003d 2 * 3;

Ekstrüdreler

Gerçekparameter \u003d 10;
Prosedür1 (gerçek parametre);

// 6 değeri görüntülenecek - resmi değişim
// prosedürün içindeki parametre değişimi etkiledi

// çağrı prosedürü: Varsayılan olarak, parametreler iletilir
// link!

Parametreleri değere göre aktarın

İşilen prosedürün veya işlevin parametresi iletildiğinde, prosedürün veya işlev içindeki resmi parametrenin değerindeki değişiklik, prosedür veya işlev çağrıldığında iletilen gerçek parametreyi etkilemez. Parametrenin değer ile iletilmesi gerektiğini, değerin anahtar sözcüğü kullanılarak gerçekleştirileceğini unutmayın.

Misal:


Prosedür prosedürü2 (resmi parametre değeri)

Formalpameter1 \u003d 2 * 3;

Ekstrüdreler

Gerçekparameter \u003d 10;
Prosedür2 (gerçek parametre);

// Değer 10 görüntülenecek - resmi değişim
// prosedürün içindeki parametre değişimi etkilemedi
// gerçek parametrenin değerleri
// Çağrı Prosedürü: Parametre değere göre iletilir!
Rapor (gerçek parametre);

Değerli veri türlerinin değişkenlerini değere göre iletme özellikleri

Değişken çeşitlerinin değişkenlerinin değere göre devri kendi özelliklerine sahiptir. Prosedür veya işlev çağrıldığında iletilen gerçek parametrelerin durumu, resmi parametrelerin bağlamında yöntem ve özelliklerle çalışırlar.

Değerle iletilen prosedürün parametresinin değer tablosundadır. Denilen prosedürün içinde, işlem strok () üç satır ekleyen değerler tablosunun yeni bir örneği oluşturulur. Bu, TK'nin değerlerinin durumunu, prosedürü handert () için işlemi ararken, gerçek parametre olarak iletilen değerlerin durumunu etkilemez:


Prosedür İşleme Track (İşaret Tablosu)


Sekme değeri \u003d yeni tablolar;

// değerler tablosuna iki hoparlör ekleyin
Sekme Compex Tablocks. Addly ("sütun1");
Sekme zorlar. Addly ("sütun2");


N \u003d 1 ila 3 döngü için
NovStok \u003d Sekme değeri. Addly ();
Novstok.colonka1 \u003d "sütun";
Novstok.colonka2 \u003d p;
Endcycle;

Ekstrüdreler

// yeni bir değer tablosu oluştur
TK \u003d yeni tablolar;



// değerler tablosuna birkaç satır ekleyin
N \u003d 1 ila 10 döngü için
Novstok \u003d tz. Addly ();

Novstok.colonka3 \u003d p;
Endcycle;

// 10 geri çekilecek


Tedavi (TK);

// geri çekilecek 10: prosedür prosedürünün içinde
// resmi parametrede yeni değerler tablosunu kaydetti

Değerle iletilen prosedürün parametresinin değer tablosundadır. Elde edilen prosedürün içinde, bir prosedür çağırırken bir parametre olarak iletilen değerlerin teminat () değerleri tablosu çöktü:


// Tablo değerinin parametresinin transferinin değere göre gerçekleştirildiği belirtilir.
Yordam Daralt: Tablo Sinyali)

// Sütun sütunları1 ve sütununda değerler tablosunda olacaktır.
Sekme özeti ("sütun1", "sütun3");

Ekstrüdreler

// yeni bir değer tablosu oluştur
TK \u003d yeni tablolar;

// değerler tablosuna üç sütun ekleyin
Tk.colonki. Addly ("sütun1");
Tk.colonki. Addly ("sütun2");
Tk.colonki. Addly ("sütun3");

// değerler tablosuna birkaç satır ekleyin
N \u003d 1 ila 10 döngü için
Novstok \u003d tz. Addly ();
Novstok.colonka1 \u003d "sütun1";
Novstok.colonka2 \u003d "sütun2";
Novstok.colonka3 \u003d p;
Endcycle;

// 10 geri çekilecek
Rapor ("TK'teki unsurların sayısı:" + TZ. N'TR. ());

// TK'yı gerçek parametreyi değere göre göndererek prosedürü yatırın.
Dağıtım (TK);

// Değerlerin Tablosu şimdi en aza indirgenmiş: Değer gösterilecektir 1
Rapor ("Katlanırtan sonra TK'teki öğelerin sayısı:" + Tk. Milliyet ());

Böylece, gerçek parametrenin bu durumda değere göre iletilmesi, değerler tablosunun bir kopyasının oluşturulmasına yol açmadı. Değerlerin değerlerinin özellikleri ve yöntemleriyle çalışırken, prosedürün komutlandırıldığında () olarak adlandırıldığında kullanılan değerler tablosunun özellikleri ve yöntemleriyle çalışırız.

Prosedürün parametresini iletirken veya referans veya değeri iletirken her türlü farkın farkı, prosedürün gerçek parametresinin veya yeni değerin fonksiyonunun atanması içinde tezahür edilir. Arama özellikleri ve yöntemleri, eğer varsa, gerçek parametrenin bağlamında, referans veya değere göre iletilip bulaşmış olup olmadığına bakılmaksızın resmi parametreyi etkiler.

1. Prosedürlerin ve fonksiyonların açıklaması, onlara bir yorum biçiminde gerçekleştirilmesi önerilir. Prosedürlerin ve fonksiyonların belirli bölümleri hakkında yorum yapılması gerektiği, kodun belirli bir bölümünün karmaşıklığına ve standardına dayanan geliştirme ile belirlenmelidir.

2. Zorunlu yorum, yazılım arayüzüne dahil olan modüllerin prosedürlerini ve işlevlerini gerektirir - bu tür prosedürler ve fonksiyonlar, diğer geliştiricilerin sorumlu olabileceği diğer fonksiyonel alt sistemlerde (veya diğer uygulamalarda) kullanım için tasarlanmıştır, bu yüzden iyi olmaları gerekir. belgelenmiş.

Ayrıca bakınız:İhracat prosedürlerinin ve fonksiyonlarının kullanımına ilişkin kısıtlamalar ve modül formlarındaki ihracat prosedürlerinin ve fonksiyonlarının kullanımı

4. İhracat dışı prosedürün (işlev) çalışması hakkında ek açıklamalar yapmayan yorumlardan kaçınılmalıdır.
Örneğin, yanlış:

// Prosedür - İşlemci olayı "çıktı" formları // & Yarık Devrişi Prosedürü () // işleme prosedürü "Hesapla" // & Doğru prosedür hesapla () // "Düzenleme" unsurunun "dayatılması" olayının işleme prosedürü // & Clause Düzenleme Prosedürü Entrytolkovdiaheprenesti (Eleman)

Bu örneklerde, yorumların olay işleyicileri olduğu prosedürlerin isimlerinden açık olduğu için yorumlar gereksizdir. Ve açıklama ve parametrelerin atanması ile Sözdizim Yardımcısı olarak bulunabilir.

// fonksiyon belgeye göre döner İstenmeyenlik fonksiyonu (veri)

Bu yorum, işlev hakkında herhangi bir ek bilgi vermez.

5. Yorum, prosedürün (fonksiyonlar) duyurulmasından önce yerleştirilir ve aşağıdaki forma sahiptir.

5.1. Bölüm "Açıklama"İşlemin (fonksiyonların) varış yerinin ve / veya ilkelerinin sözlü kısa bir açıklamasını içerir. Parametreleri olmayan prosedürler için tek bölüm olabilir.

5.2. Bölüm "Parametreler"prosedürün parametrelerini açıklar (fonksiyonlar). Değilse, bölüm atlanır. "Parametreler:" dizeden önce , sonra yeni satırdan tüm parametrelerin açıklamaları var..

5.2.1. Parametrenin açıklaması Yeni bir satırla başlar, ardından parametrenin adı, ardından kısa çizgi ve Tip Listesi (*), ardından parametrenin metin açıklamasını takip eder.
Örneğin:

// parametreler:

Ayrıca, her parametre için, parametre tiplerinin bir veya daha fazla ek açıklamasını belirleyebilirsiniz. Her bir açıklama, yeni bir satırla, daha sonra zorunlu bir tire ile başlar, ardından bir parametre tipi (*), ardından bir tire ve bir metin açıklaması.
Örneğin:

// parametreler: // DETAYLAR - Dize - virgül aracılığıyla listelenen ayrıntıların adları. // örneğin, "Kod, Ad, Ebeveyn" // - Yapı, Sabit Yapılar - İletilen bir anahtar olarak // Sonuç ile iade yapısı için taksim alanları, // ve bir değer olarak (isteğe bağlı), tablodaki gerçek alan adı. // Değer tanımlanmadıysa, alan adı anahtardan alınır. // - Bir dizi, fixherMassiv - bir dizi sahne sahne.

5.3. Bölüm "Dönüş Değeri"İşlevin işlevinin türünü ve içeriğini açıklar. Prosedürler için bu bölüm eksik. "İade değeri:" dizeden önce. Sonra yeni tip türleri (*), daha sonra tire ve metin.
Örneğin:

// Geri dönüş değeri: // boolevo - gerçek, eğer iletilen rollerden en az biri mevcut kullanıcıya uygunsa,

5.4. BÖLÜM "Örnek" Prosedür veya işlevi kullanma örneği içerir. Bir dize tarafından hazırlanan "Örnek:". Daha sonra, yeni satırdan bir örnek.

(*) Not: "Kalite listesi" altında virgülle ayrılan türlerin isimleri anlamına gelir. Türün adı basit (bir kelimeyle) veya kompozit - bir nokta ile ayrılmış iki kelimeyle olabilir.
Örneğin: Hat, Yapı, Danderther Shipdersettries.

1C platformunda geliştirildiğinde: Enterprise 8.3 Yorum Metin ayrıca bağlamsal hızlı prosedürlerde, işlevlerinde ve parametrelerinde de görüntülenir. Ayrıntılar için, platformun belgelerinde 26 "Geliştirme Araçları" bölümünde "Bağlamsal İpucu" bölümüne bakın.

Bir parametre ile fonksiyonun açıklaması örneği:

// Geçerli kullanıcıya yalnızca rolün rolünün kullanılabilirliğini belirler, // ve ayrıca idari hakların mevcudiyeti. // // parametreler: // TAMERS - Bir string - isim adları, uygunluğu kontrol edilen, virgülle ayrılmıştır. // // Geri dönüş değeri: // boolevo - gerçek, eğer iletilen rollerden en az biri mevcut kullanıcıya uygunsa, // Ya idari haklara sahip. // // Misal: // Rolly erişim ("ekstra kitle hesapları, gönder") ise ... // fonksiyon rulo erişim (Namear adları) İhracat

Parametreler olmadan prosedürün açıklaması örneği:

// Olay işleyicisinde, belgenin güncellemesi gerçekleştirilir; // - Hizmetin tablosunu temizleme, sözleşme komisyon temsilcisiyle belirtilirse; // - Tablodaki gerekli işlem biriminin doldurulmasını kontrol etme. malların parçaları; // - "alt" fatura ile senkronizasyon; // - Alıcının deposunu ve emrini, mal ve iadelerin tablo kısımlarında doldurulması; // - Tablo bölümünün kullanılmayan çizgileri silmek "seri numaraları"; // - Nesne modülüsünün değişkenini doldurma. // üzerine yazma prosedürü () son kontrolü

6. Derleme Direktifi ile birlikte kullanılan prosedür veya işlev hakkında yorum yapmak istiyorsanız, önce bir yorum yazmalı ve sonra -
derleme Direktifi. Örneğin:

// prosedür - olay işleyicisi "kalkış" formları. // form parametrelerini işler ve şekil değerlerinin ayrıntılarını doldurur. // ve ayrıca aşağıdaki işlemleri de gerçekleştirir: // ... // & Nasserver Koruma Prosedürü (Arıza, Standart İşleme)

Bu yorumun bu yerleşimi tarzı, önce fonksiyonun tanımına ve derleme direktifinin tanımına ve sonra - yeterince çok sayıda satırın işgal edilebileceği yorumunda dikkat etmeni sağlar.

7. Prosedürler ve fonksiyonlar, modülün metninde boş dizelerle birbirinden ayrılmalıdır.

Derleme Direktifli Prosedürler veya İşlevlerin Otomatik Sipariş Yorumları

Derleme direktifleriyle prosedürlere veya işlevlere yapılan yorumları otomatik olarak düzenlemek için, uygulanan işlemeyi kullanabilirsiniz. FORMATIMEDIZERIZPILATION.epf.. Bunun için ihtiyacınız var:

  1. Yapılandırma modüllerini boşaltın (Yapılandırma menüsü komutu -\u003e Yapılandırma dosyalarını kaldırın ...)
  2. Açık İşleme Modu 1C: Kurumsal ve modüllerin boşaltıldığı dizini belirtin - sonraki, "Biçim" düğmesini tıklayın.
  3. Yapılandırmada Modülleri İndirin (Yapılandırma Menüsü Komutu -\u003e Yapılandırma Dosyaları ...)

Bulduk: duyuru ve parametreler olmadan prosedürün açıklamaları örneği, aşırı yükleme için parametreler prosedürü ()1C için çatalların kullanımı için buzdolabında, 1C'de bir prosedürün nasıl yapılacağı, hangi fonksiyonların veya prosedürlerin hangi adlarının düzeltilmesi gerekir?, Kod 1C prosedürünü ve işlevini anlamak ve okumak için, 1C 77 fonksiyon açıklaması, Prosedür kodu malzemeleri hakkında yorum yapın 1C, 1C belgelerindeki prosedürler ve fonksiyonlar değiştirildiğinde, 1C belgeleri prosedürleri ve fonksiyonları


"Noktaların yerleştirilmesi" konusundaki Pathos açıklaması için şimdiden özür dilerim, ancak bir şekilde sizi bir makaleye götürmek gerekir)) Bölümüm için, hala beklentilerinizi haklı çıkarmaya çalışacağım.

Ne olduğu hakkında kısaca

Bütün bunlar da bilinir, ancak başlangıçta hala başlangıçta yöntem parametrelerinin 1C'de nasıl iletilebileceğini hatırlatacağım. "Bağlantı" ve "anlamı" iletilebilirler. İlk durumda, aynı değeri bir çağrı noktasında olduğu gibi ve ikinci - kopyası ile aynı değeri iletiyoruz.

Varsayılan olarak, 1C argümanları referans ile iletilir ve yöntemin içindeki parametredeki değişiklik dış yöntemden görülecektir. Sorunu daha da anlamak, "Parametre Değiştir" kelimesi uyarınca tam olarak ne anladığınıza bağlıdır. Öyleyse, yeniden atama ve başka bir şey yok. Dahası, ödev, örneğin, çıktı parametresinde bir şey döndüren platform yöntemini arayarak örtük olabilir.

Ancak parametrenizin referans olarak iletilmesini istemiyorsak, parametreden önce anahtar kelimeyi belirleyebiliriz. İşaret

Biliş için prosedür (değer parametresi) parametresi \u003d 2; Ekstrosing parametresi \u003d 1; Oluşturma (parametre); Rapor (parametre); // 1.

Her şey söz verildiği gibi çalışır - değişiklik (ve daha doğru "değiştirme" diyerek) parametrenin değeri, yöntemin dışındaki değerde bir değişikliğe yol açmaz.

Şaka nedir?

İlginç anlar, parametreler ilkel tipler değildir (çizgiler, sayılar, tarihler, vb.), Ancak nesneler olarak iletmeye başladığımızda başlar. Bu, nesnenin "küçük" ve "derin" kopyasının yanı sıra işaretçilerin yanı sıra (C ++ açısından değil ve soyut tanımlayıcılar (kolları) açılır.

Bir nesneyi (örneğin, tablolar) referans olarak iletirken, işaretin değerinin değerini (bazı tutamak), platformun belleğinde nesneyi tutturur. Değeri iletirken, platform bu işaretçinin bir kopyasını yapar.

Başka bir deyişle, eğer bir nesneyi referans olarak geçerse, yönteme göre değeri "dizi" parametresine atarız, sonra arama noktasında bir dizi elde ediyoruz. Referansla iletilen değeri yeniden atama, arama sitesinden görülür.

Prosedür tedavisi (parametre) parametresi \u003d yeni dizi; Ekstra hücre tablosu \u003d yeni yemleme; Tedavi (tablo); Rapor (tinch (tablo)); // bir diziyi yükle

Eğer, bir nesneyi değere göre vereceğiz, sonra arama noktasında, tablonuz kaybolmaz.

Nesnenin içeriği ve durumu

Değer iletildiğinde, tüm nesnenin kopyalanması değil, sadece işaretçisini değil. Nesnenin örneği aynı kalır. Nesneyi referans olarak nasıl geçtiğiniz önemli değil veya değere göre - değerlerin değerlerini temizleme tabloyu temizlemeye neden olur. Bu temizlik her yerde görünür, çünkü Nesne bir ve benzersizdi ve yönteme nasıl iletildiği önemli değildi.

Prosedür işleme (parametre) parametresi. Operate (); Ekstra hücre tablosu \u003d yeni yemleme; Tablo. Addly (); Tedavi (tablo); Rapor (Tablo. Number ()); // 0 çekin.

Nesneleri yöntemlere iletirken, platform işaretçilerle çalışır (geleneksel, C ++ 'dan doğrudan analoglar). Nesne referans olarak iletilirse, bu nesnenin yattığı 1C sanal makine bellek hücresi, başka bir nesne tarafından üzerine yazılabilir. Nesne değere göre iletilirse, işaretçi kopyalanır ve bir nesnenin üzerine yazılması, bellek hücresinin kaynak nesnesiyle üzerine yazmasına neden olmaz.

Aynı zamanda herhangi bir değişiklik durum Nesne (Temizlik, Ekleme, Ekleme, vb.) Nesnenin kendisini değiştirir ve genel olarak nesnenin nasıl ve nerede iletildiğine bağlı değildir. Bir nesne örneğinin durumu değişti, bir sürü "referans" ve "değerlerde" olabilir, ancak örnek her zaman aynıdır. Bir nesneyi yönteme geçerek, tüm nesnenin bir kopyasını oluşturmazız.

Ve her zaman doğru, hariç ...

İstemci-sunucu etkileşimi

Platform, sunucu aramaları tarafından çok şeffaf bir şekilde uygulanır. Yöntemi arayacağız ve platformun altındaki platform dizisinin altında (dizgiye dönüşür) tüm yöntem parametreleri, sunucuya iletir ve ardından çıkış parametrelerini istemciye geri döndürür ve yaşadıkları gibi, çıkış parametrelerini iade eder. Herhangi bir sunucuya git.

Bildiğiniz gibi, tüm platform nesneleri serileştirilebilir değildir. Buradan, kısıtlamanın büyüdüğü, tüm nesnelerin istemciden sunucu yöntemine aktarılmadığına neden oluyor. Gidilmeyen bir nesneyi iletirseniz, platform kötü kelimelere küfür etmeye başlayacaktır.

  • Programcının niyetlerinin açık bir duyurusu. Yöntemin imzasına bakıldığında, hangi parametrelerin girileceğini ve hangi çıktının olduğunu açıkça söyleyebilirsiniz. Bu kod okumak ve eşlik etmek daha kolaydır
  • Sunucudaki "Bağlantı" parametresinin değiştirilmesi için, istemcinin çağrı noktasında görülür,arameters, referans olarak sunucuya iletilen platform, makalenin başında açıklanan davranışları sağlamak için platform kesinlikle müşteriye geri dönecektir. Parametrenin iade edilmesi gerekmezse, trafik aşımı olacaktır. Verilerin değişimini optimize etmek için, değerlerini çıktıya ihtiyacımız olmayan parametreler, kelimeyi anlam ifade etmeniz gerekir.

İkinci nokta burada dikkate değer. Trafiği optimize etmek için, parametre kelime değeri ile işaretlenmişse, platform parametrenin değerini istemciye iade etmeyecektir. Bütün bunlar harika, ancak ilginç bir etkiye yol açar.

Söylediğim gibi, nesne sunucuya aktarıldığında, seri hale getirme gerçekleşir, yani Nesnenin "derin" bir kopyası yapılır. Ve eğer kelimeler varsa Değer vermeknesne sunucudan istemciye geri gidemez. Bu iki gerçeği katlıyoruz ve aşağıdakileri alıyoruz:

& Öğütme Prosedürü Promosyon (Parametre) parametresi. Tavsiye (); Tanıdık (değer parametresi) parametresi için ekstrudress ve Nasserver prosedürü. Tavsiye (); Ekstrudresses & Şikayet Prosedürü TanımaCleant (Değer parametresi) parametresi. Tavsiye (); Son kontroller ve Talep Prosedürü Kontrol Sinyali () Listesi1 \u003d Yeni Snaps; List1. Eklemek ("merhaba"); List2 \u003d list1.copy (); List3 \u003d list1.copy (); // nesne tamamen kopyalanır, // sunucuya iletilir, ardından döndürür. // Listenin temizlenmesi Hızlı (listedeki listenin) postasında görülebilir; // nesne tamamen kopyalanır, // sunucuya geçer. Geri dönmüyor. // Listenin temizlenmesi, çağrı noktasında (list2); // sadece bir nesne işaretçisini kopyalayın // Listeyi temizleme Bilişin çağrı noktasında (List3); Rapor (List1. N'tvice ()); Rapor (List2. Sayı ()); Rapor (List3. N'Trb ()); Ekstrüdreler

Özet

Kısaca, aşağıdaki gibi özetlemek mümkündür:

  • Referansla transfer, tamamen farklı bir nesneye sahip bir nesneyi "terletmenizi" sağlar
  • Şanzımanın nesneyi "terlemesine" izin verilmemektedir, ancak nesnenin iç durumundaki değişiklikler görünür, çünkü Nesnenin aynı örneğiyle çalışmak
  • Sunucu araması yapıldığında, iş nesnenin farklı nesneleriyle birlikte gelir, çünkü Derin kopyalama yapıldı. Anahtar kelime Değer vermek Sunucu örneğini istemciye geri kopyalamayı devre dışı bırakın ve nesnenin iç durumunu sunucudaki iç durumunu değiştirmek istemcide benzer bir değişikliğe yol açmaz.

Umarım bu basit kurallar listesi, meslektaşları ile "değere göre" ve "linkte" parametrelerinin iletimi ile ilgili anlaşmazlıkları çözmenizi kolaylaştırmanızı sağlar.