Parm Method
Bu konumuzda parm metodlardan bahsedeceğiz. Tanım olarak açıklayacak olursak Parm metodlar uzun adıyla parametrik metodlar değer alıp değer döndüren metodlardır. Genellikle alınan değerleri bir yerden nesneden başka bir nesneye taşımak için kullanılırlar. Yani örnek verecek olursak bir classtaki bir değeri başka bir classa veya bir forma taşımak için parm metod yazılır ve istenilen yerlerden çağrılarak kullanır.
Çok çeşitli yazılabileceği gibi en standart kullanımında belli bir tipteki (veri tipi, EDT, veya table buffer olabilir) değeri aldıktan sonra ilk çalışan nesne kapanmadığı sürece saklayan ve başka yerden çağrıldığında tekrar yeni bir değer atanmadan bir değişene atama sonucunda atanan değeri döndüren bir yapıya sahiptir.
Bir çok çeşit yazım tipi bulunmasına rağmen aşağıdaki yazılış şekli en yaygın kullanılandır.
public dondurulecekDeger parmMetodIsmi(veriTipi _localDegiskenIsmi = globalDegiskenIsmi) { globalDegiskenIsmi = _localDegiskenIsmi; return globalDegiskenIsmi; }
Örn:
public SalesId parmSalesId(SalesId _salesId = salesId) { salesId = _salesId; return salesId; }
Burada dikkat edilecek kısım atanan veriyi kaybetmemesi için örnekteki “salesId” değişkeninin global olarak tanımlanması yani classDeclarationa tanımlanması gerekmektedir. Diğer dikkat edilecek nokta ise parm metodun yazıldığı nesnenin sonlandırılmamış olması gerekmektedir.
Aşağıdaki örnekte iki tane class oluşuturup iki class arasında parm metoda nasıl atama yapılıp nasıl değer döndürüldüğünü inceleyeceğiz.
static void Erkn_ParmMethodJob(Args _args) { IkinciClass ikinciClass = new IkinciClass(); //İkinci class tanımlanır. ikinciClass.callerMethod();//ikinci classın callerMethodu çağırılır. } //classDeclaration class BirinciClass { SalesId salesId; } //Birinci class metodu public void infoMethod() { SalesId salesIdinfo; salesIdinfo = this.parmSalesId(); //İkinci classtan değeri almış olan parm method değeri döndürür. info(strFmt("Birinci Classtan Gönderilen info - SalesId : %1",salesIdinfo)); } //BirinciClass parm method public SalesId parmSalesId(SalesId _salesId = salesId) { salesId = _salesId; return salesId; } //İkinci Classın ClassDeclarationu class IkinciClass { BirinciClass birinciClass; } //İkinci class metodu public void callerMethod() { SalesId salesIdLocal = "SIP-00001"; //SalesId ataması yapılır birinciClass = new BirinciClass(); //Birinci Class Tanımlanır. birinciClass.parmSalesId(salesIdLocal); //Parm methodun içine değer ataması yapılır birinciClass.infoMethod(); //birinci classın info methodu çağırılır this.ikinciClassInfo(); //İkinci Classın info methodu çağrılır. } public void ikinciClassInfo() { SalesId salesId; salesId = birinciClass.parmSalesId(); //Değeri atanmış olan Parm method salesId değeri döndürür info(strFmt("İkinci Classtan Gönderilen info - SalesId : %1",salesId)); }
Örnekte olduğu gibi ikinciClassın callerMethodu çalıştıktan sonra birinci classtaki parm metoda değer ataması yapılıyor. Daha sonra iki classında farklı methodlarından bu parm method çağırılarak değerlerin döndürülmesi çağrılır.
Aşağıdaki linkten projeyi indirip inceleyebilirsiniz.
Link : Erkn_ParmMethod