VB6 yöntemlerini parantez ile çağırmayla ilgili bir soruyu yanıtladığımda,parametre değerlerinin ByVal
iletilmesine zorlayabileceğinizi hatırlıyorum. Araştırma, ben hala VB.NET'te çalışıyor bulundu. Bununla birlikte, C# 'de buna benzer bir şey bulamıyorum. Ancak, buna benzer bir şey bulamıyorum. Geçtiğimiz yıl, iyi bir sebep olmaksızın ByRef
numaralı telefondan çok sayıda VB.NET sınıf kütüphanesine başvurmak zorunda kaldım (güven bana, kontrol ettim). Bu, onları iletmek için yerel değişkenlere nesneler üzerinde özellikler koymaya zorladı. Önemli bir sorun değil, bana sorarsanız çok temiz değil.VB'de yapabileceğiniz gibi C# değerine ref yerine bir parametrenin geçirilmesi için bir parametre zorlamak için bir yol var mı?
Farkında olmadığım sözdizimsel bir çözüm olup olmadığını merak ediyorum. Ben önlemek istiyorum benim şimdiki desen bir örnek olarak
: VB6 ve VB.NET yılında
var tempSomeObject = BarObject.FooProperty;
SomeVb6BusinessLogicMethod(ref tempSomeObject);
// Continue to do work and set other temp objects due to ref constraint
yapabilirsiniz sadece bunu ByRef parametresine ByVal zorlamak için aşağıdaki.
SomeVb6BusinessLogicMethod((BarObject.FooProperty)) 'Note the extra parens
DÜZENLEME: Ben ByRef ve ByVal arasındaki farklar hakkında istemiyorum. C# bir ByRef parametresini ByVal geçmek için zorlamak için benzer bir yol olup olmadığını soruyorum. VB.NET işlevselliğinin bu MSDN belgesine bakın.http://msdn.microsoft.com/en-us/library/chy4288y.aspx
C# param türü içinde bu doğru karar verir? – NMK
Yöntem, yöntemde değişiklik yapmaya çalışırsa ne olur? VB.NET'te bunun nasıl çalıştığını tam olarak anlayamadım ... – Cameron
Her nasılsa şüphe duyuyorum, geriye dönük uyumluluk gibi bir şey gibi geliyor VB.NET –