Tükettiğim ve dizi parametrelerinde sorun yaşıyorum bir üçüncü taraf COM kitaplığım var. aşağıdaki gibi aradımCOM kümesiyle C# içindeki dizi parametrelerini kullanma
yöntem imzadır:
int GetItems(ref System.Array theArray)
dokümantasyon hepsi yöntemin dönüş değeri diziye dolduracaktır öğelerin sayısı, ama olsun en adlandırılan söylüyor Dizideki değerlerin yalnızca, yöntem sıfır olmayan bir döndürme değeri döndürmesine rağmen varsayılan değerlerdir (yapılardır).
Burada devam eden bazı COM etkileşimli şeyler olduğunu biliyorum, ancak gerçekten onunla çok fazla deneyimim yok ve bunu çözemiyorum. Buna erişmeye çalıştığım şey:
Array items = Array.CreateInstance(typeof(structItem), 100);
int numberOfItems = instance.GetItems(items);
Array items = Array.CreateInstance(typeof(structItem), 100);
int numberOfItems = instance.GetItems(ref items);
structItem[] items = new structItem[100];
int numberOfItems = instance.GetItems(items);
structItem[] items = new structItem[100];
int numberOfItems = instance.GetItems(ref items);
Neyi yanlış yapıyorum?
GÜNCELLEME: Burada açıklandığı gibi SafeArrays ile ilgili bir şey olabileceğini düşünüyorum: http://www.west-wind.com/Weblog/posts/464427.aspx Fark, yalnızca bir dönüş değeriyle değil, ref ile dizide geçmem gerekiyordu. Bu yazının özel çözümü işe yaramıyor, ama ısınıyormuş gibi hissediyorum.