SORU
4 EKİM 2009, Pazar


Ref vs kullanmak için zaman

Biri bana ref yerine out anahtar kelime parametre kullanmanız gerekir zaman, geçen gün sordu. Bir süre (sanırım) anlamak arasındaki fark ref out anahtar kelimeler (sahip asked before) ve en iyi açıklama sanırım o ref == in out (bazıları farazi veya Kodu) örnek olmam gereken yerde, her zaman kullanın. out ref.

ref daha genel olduğundan, neden hiç out kullanmak istiyor musunuz? Sadece sözdizimsel şeker mi?

CEVAP
4 EKİM 2009, Pazar


ref ihtiyacın yoksa out kullanmalısınız.

Pahalı olan verileri başka bir işlem için, örneğin sıraya gerektiğinde büyük bir fark yapar. Bu yöntemi kullanmak değil ne zaman başlangıç değeri sıralanırken önlemek istiyorum.

Bunun ötesinde, aynı zamanda Beyannamesi veya başlangıç değeri uygun olup olmadığını çağrısı (ve potansiyel olarak korunmuş) okuyucu gösterir, ya da atılır.

Küçük bir fark olarak, bir çıkış parametresi ihtiyacı başlatıldı.

out örneğin:

string a, b;
person.GetBothNames(out a, out b);

GetBothNames iki değer almak için bir yöntem atomik nerede, yöntemi her neyse davranışı değiştirmez. Eğer arama Hawaii'de bir sunucuya giderse, Hawaii buradan başlangıç değerlerini kopyalama bant genişliği kaybıdır. Benzer bir parçacık ref kullanarak:

string a = String.Empty, b = String.Empty;
person.GetBothNames(ref a, ref b);

bir ilk değerler gibi görünüyor, çünkü okuyucuların karıştırmayın olabilir, ve b ilgili yöntem adı olmadıklarını gösteriyor olsa da).

ref örneğin:

string name = textbox.Text;
bool didModify = validator.SuggestValidName(ref name);

Burada başlangıç değeri yöntemi için geçerlidir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
C#

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • andyabc45

    andyabc45

    1 Mayıs 2011
  • DorkmanScott

    DorkmanScott

    14 NİSAN 2006
  • Jared Busch

    Jared Busch

    25 Mayıs 2011