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

  • Jon Reed

    Jon Reed

    14 AĞUSTOS 2006
  • Motor Trend Channel

    Motor Trend

    11 Mart 2006
  • Sarah's YouTube Channel

    Sarah's YouT

    27 Temmuz 2009