C # ile ref arasındaki fark

Yazar: Laura McKinney
Yaratılış Tarihi: 2 Nisan 2021
Güncelleme Tarihi: 5 Mayıs Ayı 2024
Anonim
Csharp Dersleri - C# Metodlar Ref ve Out Arasındaki fark  | Ders - 29
Video: Csharp Dersleri - C# Metodlar Ref ve Out Arasındaki fark | Ders - 29

İçerik


“Ref” ve “Out”, C # 'da kullanılan parametre değiştiricileridir. Ref ve out tuşları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ük, çağrılan yöntemin, ref anahtar kelimesiyle kendisine verilen argümanın içeriğini değiştirmesine olanak sağlar. dışarı Anahtar sözcük, çağrılan yöntemin tek bir aramada birden fazla değer döndürmesini sağlar. Bir karşılaştırma tablosu ile birlikte ref ile arasındaki farkı inceleyelim.

  1. Karşılaştırma Tablosu
  2. Tanım
  3. Anahtar Farklılıklar
  4. Sonuç

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ılmadan ö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”, bir başvuru ile çağrılan bir yöntemi çağırmaya ihtiyaç duyulduğunda 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 ilan etmek 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 a: yöntem çağrısından sonra 10 a: 100

Yukarıdaki kodda, 'a' değişkeni, Square parametresine (ref a) bir argüman olarak iletilir. Bu, Square (ref a) 'nın içindeki' a 'değişkeni üzerinde gerçekleştireceği yöntemi 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 çağrıda 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, yönteme 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; geri dönüş bütün_sayısı; }} 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” anahtar kelimesi tarafından döndürülür, yani whole_num, diğeri ise "anahtar kelimesini çağırırken" ifadesi "out" anahtar kelimesinden önce gelen bir parametre döndürür.

Out anahtar kelimesi hakkında hatırlanması gereken önemli noktalar.

  • Ref anahtar sözcüğünden farklı olarak, out anahtar sözcüğünü kullanan parametrenin, yöntem çağrısından önce başlatılmaması gerekir.
  • Çağrılan yöntemin kendisi, çağrılan yöntemin içinde atanmamış olarak kabul edildiğinden, yani başlangıç ​​değerinin olmadığı varsayılırsa, out anahtar sözcüğü olan parametreye bir değer atar.
  • Ç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.
  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. Öte 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. Oysa, 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üğünün, önceki argümanın değerini geri döndürmek için kullanıldığı durumlarda farklıdır. out anahtar sözcüğüyle.