Tavsiye, 2021

Editörün Seçimi

C # ile ref arasındaki fark

“Ref” ve “Out”, C # 'da kullanılan parametre değiştiricileridir. Ref ve out komutlarını kullanarak herhangi bir değer türünü herhangi bir yönteme referans olarak iletebilirsiniz. Herhangi bir değer türünü referansına göre iletme nedeni, ref ve out anahtar sözcükleri arasındaki temel farkı ortaya çıkarır. Ref anahtar sözcüğü, çağrılan yöntemin, kendisine ref anahtar kelimesiyle iletilen argümanın içeriğini değiştirmesine izin verir. Out anahtar sözcüğü, çağrılan yöntemin tek bir aramada birden fazla değer döndürmesini sağlar. Karşılaştırma tablosu ile birlikte ref ile arasındaki farkı inceleyelim.

Karşılaştırma Tablosu

Karşılaştırma için temelRefDışarı
TemelRef anahtar kelimesiyle devam edilen argüman değerindeki değişikliğe izin verir.Bir yöntemin, bir out anahtar sözcüğünden önce gelen değerleri döndürmesini sağlar.
BaşlatmaYöntem çağrısından önce ref parametresi başlatılmalıdır.Çıkış parametresi sonlandırılmadan önce çağrılan yöntemin içinde başlatılmalıdır.
deklarasyonBir yöntem tarafından değiştirilecek parametre, yöntem bildirimi ve yöntem çağrısı sırasında ref olarak bildirilir.İade edilecek parametre, yöntem bildirimi ve yöntem çağrısı sırasında ref olarak bildirilmelidir.

Ref Anahtar Kelimesinin Tanımı

“Ref”, başvuruyla çağrı ile bir yöntem çağrılması gerektiğinde kullanılan bir parametre değiştiricidir. Çağrılan bir yöntemin içindeki argümanlarda yapılan değişikliklerin o değişkenin orijinal değerine yansıtması gerektiğini istediğimizde, ref parametre değiştiricisi kullanılır. Ref olarak tanımlamak istediğimiz değer türü, yöntem bildirimi ve yöntem çağrısı sırasında “ref” anahtar sözcüğünden önce gelir. Bir yöntem çağrılırken ve bildirilirken birden fazla parametre “ref” olarak tanımlanabilir.

 Sistem kullanımı; sınıf DemoRef {public void Square (ref int s) {s = s * s; }} sınıf Ref_main {statik void Main () {DemoRef ob = new DemoRef (); int a = 10; Console.WriteLine ("a yöntem çağrısından önce:" + a); Kare kare (ref a); // Kullanılan Ref Anahtar Kelime Konsolu.WriteLine ("çağrıdan sonra:" + a); }} // yöntem çağrısından önce bir çıkış: yöntem çağrısından sonra bir 10: 100 

Yukarıdaki kodda, 'a' değişkeni, Square (ref a) yöntemine argüman olarak ve ona bağlı parametre değiştirici ref ile iletilir. Bu, Square (ref a) 'nın içindeki' a 'değişkeni üzerinde gerçekleştireceği yöntemi değiştiren ne olursa olsun, yöntemin dışında da' a 'nın orijinal değerini yansıtacağı anlamına gelir.

“Ref” parametre değiştiricisiyle çalışırken hatırlanması gereken bazı önemli noktalar var.

  • Ref tarafından bir yönteme ilettiğiniz argüman, yöntem çağrılmadan önce başlatılmalıdır.
  • Bu yöntem, başlangıç ​​değerini ref bağımsız değişkenine atamamalıdır.
  • Ayrıca ref ile birlikte referans değişkenini de kullanabilirsiniz.

Anahtar Kelimenin Tanımı

Bir yöntemi her çağırdığınızda, yalnızca tek bir değer döndürürdü. Bir yöntemin bir aramada birden fazla değer döndürmesini istiyorsanız, “out” anahtar sözcüğünün, yöntem sonlandırıldığında geri dönmek istediğiniz parametrelerle birlikte kullanılması gerekir. Bazen, metoda hiçbir şey iletmek istemediğimizde, yöntemin bir şeyi geri döndürmesini istediğimizde, out anahtar kelimesiyle parametreleri kullandığımız durumdur. Bunu bir örnekle anlayalım.

 Sistem kullanımı; sınıf DemoOut {public int Decompose (çift x, çift kesir dışına) {int whole_num; whole_num = (int) x; kesir = x - bütün_num; whole_num döndür; }} sınıf Out_maint {statik void Main () {DemoOut ob = new DemoOut (); int i; çift ​​kırık; i = ob. Oluştur (100.125, kırılma); // Console.WriteLine anahtar sözcüğünü kullandı ("Tüm sayı kısmı" + i); Console.WriteLine ("kesir kısmı" + fraktır); }} // output Tam sayı kısmı 100, kesirli kısım 0, 125 

Yukarıdaki kodda, Decompose () yöntemi ile iki değer döndürülür. Bunlardan biri “return”, yani whole_num anahtar kelimesi tarafından döndürülür, diğeri ise metot yani “frac” deyince, out anahtar sözcüğünden önce gelen bir parametre döndürür.

Out anahtar sözcüğü hakkında hatırlanması gereken önemli noktalar.

  • Ref anahtar sözcüğünden farklı olarak, out anahtar sözcüğünü kullanan parametre, yöntem çağrısından önce başlatılmamalıdır.
  • Çağrılan yöntemin kendisi, çağrılan yöntemin içinde atanmamış olarak kabul edildiği için bir çıkış anahtar sözcüğü olan parametreye bir değer atar, yani başlangıç ​​değerinin olmadığı varsayılır.
  • Çağrılan yöntem, yöntem sona ermeden önce out parametresine bir değer atamalıdır.
  • Out anahtar sözcüğü başvuru değişkenine de uygulanabilir.

Ref ve C Arasındaki Temel Farklar C #

  1. Ref anahtar sözcüğünden önce gelen bir değişken herhangi bir yönteme iletildiğinde, yöntemin içinde yapılan değişiklikler orijinal değerine yansır. Bir yönteme iletilen bir değişken, out anahtar kelimesinden önce geldiğinde, yöntem return anahtar kelimesini kullanmadan döndürür.
  2. Ref parametresi bir yönteme geçmeden önce başlatılmalıdır. Öte yandan, out parametresinin iletildiği yöntemin içinde başlatılması gerekir.
  3. Bir yöntemi çağırırken, bildirirken veya tanımlarken, ref parametresi açıkça ref olarak bildirilir. Diğer yandan, bir yöntemi çağırırken, bildirirken veya tanımlarken, out parametresi açıkça out of ilan edilir.

Sonuç:

Değişken bir yönteme referansla ne zaman geçirilirse ref ve out anahtar sözcüğü kullanılabilir. Her iki anahtar kelimenin de kullanılmasının nedeni, ref anahtar sözcüğünün ref anahtar kelimesinden önce gelen, argümanın değerini değiştirmek için çağrılan yönteme iletilen ve out anahtar sözcüğünden önceki argümanın değerini geri döndürmek için kullanılabildiği durumlarda farklıdır. out anahtar sözcüğüyle.

Top