SORU
11 Mart 2009, ÇARŞAMBA


Ref ne zaman kullanılır ve C ise#

Program hafıza benim durumunda olan bir nesne var ve ayrıca nesnenin durumunu değiştirmek için ölmek başka bir işçi işlevleri var. Alt fonksiyonları için ilan no ile yapılır olmuştur. Ancak aşağıdaki işlevi rastladım.

byte[] received_s = new byte[2048];
IPEndPoint tmpIpEndPoint = new IPEndPoint(IPAddress.Any, UdpPort_msg);
EndPoint remoteEP = (tmpIpEndPoint);

int sz = soUdp_msg.ReceiveFrom(received_s, ref remoteEP);

Her ikisi de received_s remoteEP işlevinden şeyler dönüyor çünkü benim kafam karıştı. Neden remoteEP ref received_s bir ihtiyacı var mı?

Bir sorun kafamdan işaretçiler çekiyorum bu yüzden de bir c programcısı değilim.

Edit: C nesne gibi görünüyor# başlık altında nesne işaretçileri. Bu kadar zaman geçmesine bir nesneye bir işlev görebilir sonra Değiştir nesnenin içeriği ile işaretçi ve tek şey geçirilen işlev işaretçisi nesne yani nesnenin kendisi değil kopyalanan. Eğer dışarı geçiş veya çift kişilik bir işaretçi gibi işlev yeni bir nesne oluşturmak mümkün olmasını istiyorsanız, ref ya da out kullanın.

CEVAP
11 Mart 2009, ÇARŞAMBA


Kısa cevap: okumak benim article on argument passing.

Başvuru türü bir parametre değeri tarafından geçirilen zaman, sadece referans geçirilir . uzun cevap: ^em>değilnesnenin bir kopyasını. Bu C veya C işaretçi (değer) geçen gibidir . Arayan tarafından görülebilir kendisi olmayacak ama referans gösteren nesnedeki değişiklikleri parametrenin değeri değişirgörülebilir.

Bir parametre (her türlü) geçirilirtarafındanbaşvuru, Bu parametre herhangi bir değişiklik arayan - parametre değişiklikleri görülür anlamına gelirdeğişken değiştirir.

Bu makalede daha ayrıntılı olarak, tabii ki:) bu her şeyi açıklıyor

Yararlı cevap:neredeyse hiç ref/kullanın. Temelde başka bir dönüş değeri almak için bir yol var, ve genellikle bu yöntem muhtemelen çok fazla yapmaya çalışıyor demektir çünkü kesin olarak kaçınılmalıdır. Bu her zaman böyle değil (TryParse vb out makul kullanım kurallı örnektir) ama ref/kullanılarak göreceli nadir olmalıdır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Droid Life

    Droid Life

    17 Kasım 2009
  • midomansour

    midomansour

    19 EYLÜL 2009
  • Sergio Fernandez

    Sergio Ferna

    1 EKİM 2009