Salı, Kasım 07, 2006

String'leri Birleştirirken Dikkat Etmeli!

Uzun bir aradan sonra tekrar merhaba, tezdi kitapdı derken blogumdan sizlere seslenebilmek için tekrar vakit bulabildim. Bu sefer vereceğim ipucu eminim ki çoğu yazılımcı tarafından bilinmeyen bir konudur.

Stringlerle çalışırken birçok yazılımcının bilmediği birşeyi keşfettim. String ifadeleri birbiri ardına eklerken kullandığımız + operatörünün aslında bellekte gereksiz stringler yarattığını farkettim. Bir örnek ile açıklayalım en iyisi :

string s;

s = "bir";
s+= " deneme";
s+= " metni";
s+=" oluşturalım";


Bu ifadenin sonunda s değişkenimizde "bir deneme metni oluşturalım" ifadesi yer alır. Buraya kadar herşey normal, ancak bu işlem sonucunda 4 tane string değişken oluşturulur ve bunların hepsi bellekte yer kaplar, ancak biz sadece sonuncusunun referansına erişebiliriz, diğer 3'ü ise GarbageCollector tarafından toplanmayı bekleyerek bellekte yer işgal eder. Bundan kaçınmamız için tabi ki .NET framework içerisinde yöntemler mevcuttur :

1) String işlemler için Concat, Join ve Format metodlarını kullanmak

2) Çoklu string birleştirme işlemi için StringBuilder nesnesini kullanmak. Ona da örnek verelim de tam olsun :

string s;
StringBuilder sb = new StringBuilder(30);

sb.Append("bir");
sb.Append(" deneme");
sb.Append(" metni");
sb.Append(" oluşturalım");

s=sb.ToString();


İyi Çalışmalar

Hiç yorum yok: