Görev
İki değişkenin değerlerini değiştiren bir prosedür yazın.
Bu görevin özelliği, çağıran program tarafından bilinmek için prosedürde yapılan değişikliklere ihtiyaç duymamızdır.
Prosedürü şu şekilde yazmaya çalışalım:
static void Swap (int a, int b) // prosedür parametrelerinin böyle bir açıklaması ile,
{ // bağımsız değişkenlerin (x ve y) değerlerini kopyalar
int c; // a ve b değişkenleri, x ve y ile ilgili olmayan bağımsız değişkenlerdir
c = bir; bir = b; b=c;
}
statik boşluk Ana()
{
int x=1, y=2;
Değiştir(x, y); //x ve y değişkenlerinin değerleri (argümanlar) a ve b, x = 1, y = 2 parametrelerine kopyalanır
}
Bu programı çalıştırırsanız x ve y değişkenlerinin değerlerinin değişmediğini görebilirsiniz. Parametrelerin argümanların değerlerini değiştirebilmesi için referansa göre veri aktarımını kullanmalısınız.Bunu yapmak için başlıkta veri türünün adından önce ref
yazmalısınız. alt programdan.
void Swap ( ref int a, ref int b ) // şimdi a ve b değişkenleri bellekteki x ve y değişkenlerinin adreslerini alıyor
{
int c;
c = bir; bir = b; b=c;
}
statik boşluk Ana()
{
int x=1, y=2;
Swap(ref x, ref y);
Uygulama: Bir bağımsız değişkeni referans olarak iletirseniz, prosedür çağrılırken bu yerde yalnızca değişkenin adı (bir sayı ve bir aritmetik ifade DEĞİLDİR) durabilir.
Böyle bir prosedürü çağıramazsınız:
Değiştir(x, 4);
Değiştir(5+x, y);