C# Eğitimleri 43 – Diziler 4 – Array Sınıfı Metodları 2

C# Eğitimlerimize Array sınıfının yeni metodları ile devam ediyoruz.

  • CreateInstance Metodu

Bu metod bir diziyi değişken tipini, eleman sayısını ve boyutunu belirleyerek oluşturmak için kullanılan metoddur.
 
Kullanımı
 
Array.CreateInstance(Değişken_türü, Eleman_Sayısı, Dizinin_Boyutu);
Array okul=Array.CreateInstance(typeof(string),10);
 
Önemli Not: Dizi bir boyutlu ise boyut belirtilmez.

 

Instance Nedir?

Bir sınıftan türeyen nesnelere instance deriz.
CreateInstance metodu ile yapılan işlem Array sınıfından bir dizi oluşturulur.
Bu oluşturduğumuz sınıftan istediğimiz kadar Instance oluşturup kullanabiliriz.
CreateInstance metodu ile oluşturulmuş bir dizi referans alınıp nesnesi oluşturulmadan olduğu gibi kullanılmaz. Bir değer ataması yapılamaz.
Yazdığımız kodlara bir göz atarsak.
Array Takımlar = Array.CreateInstance(typeof(string), 5);
Takımlar isminde bir Array oluşturdum. Tipinin string olduğunu 1 boyutlu olduğunu ve uzunluğunun da 5 olduğunu anlayabiliyorum.
string[] Takım = (string[])Takımlar;
Oluşturduğum Array’den bir dizi tanımlaması yapıp referans aldım. Burada şu dikkatimizi çekebilir. (string[]) ifadesi. Oluşturmuş olduğum takım Array’i referans tiplidir. Unboxing yapmadan bu dizinin tipini öğrenemez ve istediğim diziyi oluşturamazdım. Burada bu ifadenin yaptığı işlem string[]  tipli bir dizi istiyorum şeklinde ifade edebileceğimiz bir tür dönüşümü işlemiydi.
  • IsArray Metodu

Bu metodumuz ise bir değişkenin dizi değişkenimi yoksa farklı bir değişken mi onu öğrenmemize yardımcı olur. Geriye true yada false şeklinde 2 değer döndürür.

  • SetValue Metodu

Dizilere değer ataması yapmayı ilk konumuzda görmüştük. Ama bir diziye değer ataması yapmanın tek yöntemi anlattığımız o yöntem değildir.

SetValue metodu da bir diziye istediğimiz indisine bir değer ataması yapabilir.

Kullanımı

Dizi_adı.SetValue(“Atanacak_Değer”,index_numarası);

Dizinin 2.indisine Fenerbahçe elemanının atamasını yaptı.

Burada aklımıza gelebilecek sorulardan bir tanesi şudur. Var olan bir değer üzerine atama yaparsam ne olur.

Örneğin;

olsaydı. 1. indiste bulunan Beşiktaş değerinin üzerine Fenerbahçe yazılmış olacaktı.
Bir diğer soruda şu olabilirdi. Uzunluğu belirlenmiş bir dizi içine sınırın dışına çıkan bir atama yapabilirmiyiz?

 

Böyle bir durumda her dizi işleminde olduğu gibi sınır aşımlarında kodlama anında hata almayız. Ama Runtime da aşağıda gördüğümüz hatayı alırız.
  • GetValue Metodu

Bir dizinin istediğimiz elemanına ulaşmayı bir önceki yazılarımızda göstermiştik. Ancak aynı SetValue de olduğu gibi bir dizinin elemanlarına erişmek için tek yöntem o değildir.

GetValue metodu bir dizinin istediğimiz indisindeki değere ulaşmak için kullanabileceğimiz bir metoddur.

Zaten ingilizcesine odaklansak bile ne olduğunu kolayca anlayabiliriz. Değer Getir.

Kullanımı

Dizi_adı.GetValue(index değeri);

Bir sonraki yazımda görüşmek üzere.

Facebook Sayfamizdan Bizleri Takip Edebilirsiniz
Murat Bilginer

Industryolog Akademi Founder – Endüstri Mühendisi
Canias ERP Troia Geliştiricisi & Yazılım Uzmanı
7 Yıldır bildiğini paylaşmak için çabalayan bir blogger.

http://muratbilginer.net/