Dizinin Length özelliğini bazı tekniklerle değiştirmek mümkün mü?Array's Length özelliğini ayarlama
bir yöntemi için bir dizinin ilk x üye geçmek gerekir. Proje gereksinimleri herhangi yığın ayırma yüzden herhangi Array.Resize()
kullanabilir veya yeni bir dizi oluşturamıyor tahsis engelliyor.
Ayrıca SetVertices kodu başka bir kitaplığa ait olduğu için kodunu değiştiremiyorum. V[]
'a ihtiyacı var. Ona IList<V>
veya V*
'u gönderemiyorum. Kod, elbette derlenmeyecektir. Diziyi, daha küçük bir dizi oluştururken olmadan daha küçük olarak gizlemek için yansıma veya uzantı yöntemleri gibi bazı tekniklere ihtiyacım var. SetVertices() yönteminin, dizinin daha fazla olmasına rağmen x üyelerine sahip olduğunu düşünmesini istiyorum.
DÜZENLEME:
şu yaklaşımlar Test ve onlar çalışmaz: o yaratmaz çünkü
- stackalloc çalışmıyor (ya da ben alamadım) gerçek dizi.
- mono- projeye atmayı O dizinin uzunluğu özelliği arama GetLenght() ve Getränk() yöntemleri uzunluğunu belirlemek için bir tespit. Kötü bir uygulama olarak, bu yöntemi uzantı yöntemleriyle geçersiz kılabilirim çünkü örnek yöntemler, uzantı yöntemlerine göre önceliğe sahiptir (yoksa aksi halde zorlamak için bir yol var mıdır?).
Gelecek kod enjeksiyonu deneyin.
EDIT2:
Array.GetLength()
ve Array.Length
içine kodunu yayacak şekilde çalıştı. Çalışma zamanında mevcut bir yöntem gövdesini değiştirmek için kolay, güvenilir, çapraz platform ve temiz bir yol yok gibi görünüyor. Eğer gerçekten maksimum performans ile bunu yapmak varsa
Bence bu imkansız. – dotctor
Herhangi bir anlamlı C# yazmak bir şey ayırmadan yazmak neredeyse imkansız. Ne kadar sıkı, altında yatan sebep nedir? –
"x" aynı kalıyor mu yoksa bir çağrıdan diğerine sık sık değişiyor mu? – alexm