Dizilerin SetValue yöntemine sahip olduğunu fark ettim, bu yalnızca dizinleyicileri kullanabildiğinizde biraz bozuk görünüyor. SetValue için özel bir amaç var mı? MSDN makalesi, SetValue'nin ne için olduğunu, nasıl kullanılacağını söylemedi. Hız kadar ilerlemek için hangi yöntem daha verimli olur?Bir dizinin SetValue yöntemini kullanarak [] dizinleyicilerine karşılık
9
A
cevap
15
Bazen bir diziniz var, bu bir Array
olduğunu. Array
sınıfının dizinleyicileri yoktur, bu nedenle öğe değerlerini ayarlamanın/ayarlamanın en iyi yolu GetValue
ve SetValue
yöntemleri aracılığıyla olur. Örneğin: derleme zamanında dizinin boyut sayısını bilmiyorsanız
private void M(Array array)
{
array[0] = 5; // <-- Compiler error
array.SetValue(5, 0); // <-- Works
}
Ayrıca, sen 'SetValue kullanabilirsiniz (Object, Int32 [])' aşırı çalışma zamanında elemanlarını belirtmek için: http : //msdn.microsoft.com/en-us/library/758awxk7.aspx –
Dizinler nereden başlıyor? Biri 0 beklerdi, ancak bugün bir .NET bileşeniyle bir COM bileşeninden döndürülen bir değerle karşılaştım, ancak indeksler 0 değil, 0'da başladı. –
@PeterMortensen, COM gerçekten korkutucu bir yer. :) Ama bu ilginç bir bilgi. –