Ado Giriş

Posted in Uncategorized etiketler ile , , , , , , , , , on Mayıs 12, 2009 by ammoti

Posted in Yazılım etiketler ile , , , , , , on Nisan 28, 2009 by ammoti

Selamun Aleykum;

Bugun nette gezinirken farklı bişey buldum(en azından benim için)microsoft’un Konuşma kütüphanesi, paylaşalım dedim,,belki Proje ikaz mahiyetinde bişey katmak baabından güzel olur…Neyse az laf çok icraat…Form a 1 adet multiline enabled olmuş Textbox birde buton koyalım…

Ve Resimdeki Library kütüphanemize ekliyelim…

 

ve Kodlamaya geçelim zaten fazla kod yazmıycaz…Once button’umuzun Click event ına gelelim..ondan da once SpeechLib adli namespace imizi ekliyelim…

artık event tayız….

    private void button1_Click(object sender, EventArgs e)
        {//Once bir Instance oluşturduk...
            SpVoice voice = new SpVoice();

//konuşma kütüphanesine textBox taki değeri konuşmasını söyledik…
            voice.Speak(textBox1.Text, SpeechVoiceSpeakFlags.SVSFlagsAsync);
       }

tadından yenmez bir konuşturucu… dayayın dinliyeceğiniz bir makaleyi[ingilizce olursa iyi olur :D]siz kafayı koyun o okusun….
vesselam

Kriptofik

Posted in Uncategorized etiketler ile , , , , , , , on Nisan 5, 2009 by ammoti

Selamun Aleykum;

Kardeşlerim bu aralar biraz fazla yoğunuz haklarınızı helal ediniz :D
Son bombam Kriptofik  son derece basit bir algoritma ile yazılan bu şifreleme aracı.Kripto ile ilgilenen geliştiriciler için belki başlangıç olur düşüncesindeyim…

Hade hayırlısı

Kaynak KodlarınaBuradanUlaşın…

VeriTabanına Binary Olarak Resim Ekleme

Posted in Uncategorized etiketler ile , , , , , , , on Mart 21, 2009 by ammoti

Selamun Aleykum dostlar;
Bu  yazıda inşAllah bir Foto veya  Resmi Binary(İkili  Sayi)olarak  VeriTabanına kaydetmeyi göstericem.VeriTabanı  olarak  MSSQL kullanıcam..

Şekilde gibi atmasyon bir  veritabanı  ve KolonAd   ve Veritipleri oluşturalım(Aslında Ad,Soyad,Resim de olsa olur  bu DB eskilerden buldum.)

Şimdi WinForm tarafına  geçip Seçtiğmiz bir resmi Binary olarak DB mize kayıt edelim..
Fotomuzu Binary olarak kaydetmek için “IO”  isim uzayının MemoryStream nesnesinden yararlancam…

Evet   bu olay da bitti şimdi PictureBox ımıza bir Resim koyup(OpenFileDialog la halledebilirisniz)VeriTabanımıza kayıt edelim…

Ve Sonuç…

Resim kolonumuza Binary Data olarak Kayıtetti.

Ufak ama Ado ya giriş için iyi bir makale düşüncesindeyim eksiklerim illaki vardır..Affınıza sığınırım…

Vesselam

 

C# Videolar’ı(for Beginner :))

Posted in Uncategorized etiketler ile , , , , on Şubat 27, 2009 by ammoti

Selamun Aleykum Canlar

Sizler için en azından bu işe yenni başlayanlar için süper videolar buldum daha çok C# ağırlıklı anlatımlar yapılıyor.Bende çektiğim bir kaç video ‘yu burada yayınlıycam yakında kısmetse …

Not:Görüntü Kalitesi biraz düşük olabilir….

http://vimeo.com/user771165

C# Team

Posted in Uncategorized etiketler ile , , , , , , , on Şubat 21, 2009 by ammoti

Üst Sıra:Zhe Fu, Luca Bolognese, Theo Yaung, Rusty Miller, Eric Lippert, Wes Dyer, Prakash Balasubramanian, Genevieve Orchard, Esen Tuna, Keith Farmer, Tom Meschter, Don Espen, Steve Kruy, Yuval Mazor, Daigo Hamura, Vijay Upadya.

3.Sıra:Matt Cavallari, Scott Nonnenberg, Cyrus Najmabadi, Jeremy Meng, Luke Hoban, Eric Maino, Seshadri Pillailokam Vijayaraghavan, Alexandru Ghiondea, Mary Deyo, Mathew Charles, Sreekar Choudhary, Matteo Taveggia, Gabriel Esparza-Romero, Frances Lam, David Sterling, Xun Sun, Tiki Wan, HeeJae Chang,

2.Sıra:Jason Cooke, Terry Adams, Charlie Calvert, Mads Torgersen, Jerry Higgins, Sam Ng, DJ Park, Matt Warren, Daniel Rathbone, Chris Burrows, Jomo Fisher, Alex Turner, Renaud Paquay, Marcelo Guerra Hahn, Damon Tivel, Mike Hopcroft.

Alt Sıra:Ying Peng, Karen Liu, Anson Horton, Douglas Yung, Suma Sushilendra, Faisal Baqai, Dinesh Kulkarni, Deepti, Kathy Lu, Baoping Zhang, Raj Pai, Stephanie Dishneau, Drew Fletcher

Ve En Önde:Anders Hejlsberg

CETURK Microsoft Teknolojileri Etkinliği

Posted in Uncategorized etiketler ile , , , , on Ocak 29, 2009 by ammoti

CETURK Microsoft Teknolojileri Etkinliği

CETURK Microsoft Teknolojileri Etkinliği

Bugüne kadar çok farklı konu ve teknolojiler ilgili yaptığı ücretsiz etkinliklerle bilişim sektörünün gelişmesine katkıda bulunan CETURK yine büyük bir organizasyon ile karşınızda.

7 Şubat Cumartesi günü Microsoft Türkiye İstanbul Ofisi‘nde gerçekleştirilecek CETURK Microsoft Teknolojileri Etkinliği inde

XNA Game Studio ile Oyun Programlamaya Giriş,

Asp.Net Mvc,

Ado.Net 3.5 / Ado.Net Entity Framework ve Asp.net ile Facebook Uygulama Geliştirme seminerleri yapılacaktır.

Etkinliğimize katılım her zamanki gibi ücretsiz olacaktır.

Kayıt için : http://www.ceturk.com/etkinlikkayit.asp?id=63

Saat Konu Konuşmacı
10.20 – 10.30 CETURK Mehmet Aca
10.30 – 11.50 XNA Game Studio ile Oyun Programlamaya Giriş Mehmet Aydın ünlü
11.50 – 12.00 Ara —-
12.00 – 13.20 Asp.Net MVC Ersan Bilik
13.20 – 14.00 Ara —-
14.00 – 15.20 Ado.Net 3.5 / Ado.Net Entity Framework Ahmet Kaymaz
15.20 – 15.30 Ara
15.30 – 16.50 Asp.net ile Facebook Uygulama Geliştirme Aykut Taşdelen
16.50 – 17.00 Kitap Çekilişi —-

 

Miguel de Icaza nın PDC sunumu

Posted in Uncategorized etiketler ile , , , , on Ocak 24, 2009 by ammoti

Selamun Aleykum
O gün PDC sunumlarına bakarken Mono Foundation’ı olan Miguel de Icaza nın da Mono yu anlattığı Sunum ‘u buldum..Adam gerçekten Mono nedir ne değildir çalışma mantığı CLR olan uyumunu v.s. v.s. güzel anlatıyor….
Video için:http://channel9.msdn.com/pdc2008/PC54/

yukarıdaki adreste bulabilirsiniz….
iyi Günler

.NET ‘te Şifreleme Sınıflarını Kullanmak

Posted in Uncategorized etiketler ile , , , , , , on Ocak 21, 2009 by ammoti

.NET platformu, kriptografik işlemler için kullanılabilecek zengin sınıflar içerir. .NET Platformunda kriptografik sınıfların çoğu, Windows Cryptographic Service Providers (Windows kriptografik servis sağlayıcılar) için yönetilen bir pakettir.

Hash Algoritmalarını Kullanmak :

Bir hash algoritması, uzunluğu belli olmayan bir dizenin içeriğini benzersiz şekilde şifreleyerek bir değer üretir.Hash değerleri bir dosya içindeki değişiklikleri tespit etmek için kullanışlıdır. Dosyanın durumunun herhangi bir anda fotoğrafını çekme imkanı sunar. Bu Sayede bir önceki hash değerleri ile dosyanın o andaki hash değerlerini karşılaştırarak dosyada değişiklik yapılmışmı yapılmamışmı öğrenebilirsiniz.

.NET platformu içindeki sınıflar, aşağıdaki hash algoritmalarını kullanmaktadır.

  • MD5 – 128-bit hash değeri üretmektedir. MD5CryptoServiceProvider sınıfı tarafından uygulanmaktadır.
  • SAH1 – 160-bit hash değeri üretmektedir. SHA1CryptoServiceProvider ve SHA1Managed sınıfları tarafından uygulanmaktadır.
  • SHA256 – 256-bit hash değeri üretmektedir. SHA256CryptoServiceProvider ve SHA256Managed sınıfları tarafından uygulanmaktadır.
  • SHA384 – 384-bit hash değeri üretmektedir. SHA384CryptoServiceProvider ve SHA384Managed sınıfları tarafından uygulanmaktadır.
  • SHA512 – 512-bit hash değeri üretmektedir. SHA512CryptoServiceProvider ve SHA512Managed sınıfları tarafından uygulanmaktadır.

Not : MD5 en hızlı fakat en az güvenli algoritmadır. Her SHA algoritması daha güvenlidir ama daha falza hesaplama gerektirmektedir.

Örnek:

static byte[] ByteDonustur(string deger)
{
char[] arrayChar = deger.ToCharArray();
byte[] arrayByte = new byte[arrayChar.Length];

for (int i = 0; i < arrayByte.Length – 1; i++)
{
arrayByte[i] = Convert.ToByte(arrayChar[i]);
}

return arrayByte;
}

static void Main(string[] args)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] deger = ByteDonustur(“ABCDEFG”);
byte[] sonuc = md5.ComputeHash(deger);

Console.WriteLine(BitConverter.ToString(sonuc));
Console.ReadLine();
}

İşleminden çıkan sonucun değeri.

Burada dikkat edilmesi gereken hususlara gelecek olursak ComputeHash() Metoduna bir dizeyi doğrudan geçiremezsiniz. ByteDonustur() Metodu kullanılarak dize ComputeHash() verilmeden önce byte dizisine dönüştürülmektedir.ComputeHash() metodu tarafından geri döndürülen byte dizisi BitConverter sınıfı ile dizeye geri dönüştürülmektedir.

SİMETRİK ŞİFRELEME ALGORİTMALARI

Bir veriyi simetrik bir veri algoritması ile şifrelediğinizde gönderici ve alıcının aynı şifre çözücü anahtara sahip olmak zorundadır.

.NET platformundaki sınıflar aşağıdaki simetrik algoritmaları desteklemektedir.

  • DES – Birleşik Devletler Veri Şifreleme Standartı (Data Encryption Standart) : Bu algoritma DESCryptoServiceProvider sınıfı tarafından uygulanmaktadır.
  • Triple DES – DES algoritması sıralı şekilde üç farklı şifreleme anahtarı ile uygulanır. Bu algoritma TripleDESCryptoServiceProvider sınıfı tarafından uygulanmaktadır.
  • RC2 – RC2 Blok Şifresi (Block Cipher). Bu algoritma RC2CryptoServiceProvider sınıfı tarafından uygulanmaktadır.
  • Rijndael – İleri Düzey Şifreleme Standartı tarafından kullanılan algoritmadır. Bu algoritma RijndaelManaged sınıfı tarafından uygulanmaktadır.

Örnek : SimetrikWrite.cs

class SimetrikWrite
{
const string desKey = “12345678″;
const string desIv = “ABCDEFGH”;

static byte[] ByteDonustur(string deger)
{
char[] arrayChar = deger.ToCharArray();
byte[] arrayByte = new byte[arrayChar.Length];

for (int i = 0; i < arrayByte.Length; i++)
{
arrayByte[i] = Convert.ToByte(arrayChar[i]);
}

return arrayByte;
}

static void Main(string[] args)
{
byte[] arrayDESKey = ByteDonustur(desKey);
byte[] arrayDESIV = ByteDonustur(desIv);
byte[] arrayInput = ByteDonustur(“Merhaba Dünya”);

DESCryptoServiceProvider des = new DESCryptoServiceProvider();

//Formun en üstünde desKey ve desIv isimli iki tane sabit var. DESCryptoServiceProvider sınıfı ile veriyi şifrelediğinizde hem gizli bir anahtar hem de bir ilk değer vektörü sağlamalısınız çünkü yarattığınız dosyadaki şifreyi çözmek istediğinizde ihtiyaç duyacaksınız. Bu dizilere istediğiniz 8 karakter dizesini atayabilirsiniz.
ICryptoTransform cEncryptor = des.CreateEncryptor(arrayDESKey, arrayDESIV);
CryptoStream cStream = new CryptoStream(new FileStream(“c:simetrik.text”, FileMode.Create, FileAccess.Write),cEncryptor, CryptoStreamMode.Write);
cStream.Write(arrayInput,0,arrayInput.Length);
cStream.Close();
Console.ReadLine();
}
}

Örnek : SimetrikRead.cs

class SimetrikRead
{
//Bu sabitlerin değeri SimetrikWriter Dosyasındaki desKey ve desIv sabitleri ile uyuşmalıdır.
const string desKey = “12345678″;
const string desIv = “ABCDEFGH”;

static byte[] ByteDonustur(string deger)
{
char[] arrayChar = deger.ToCharArray();
byte[] arrayByte = new byte[arrayChar.Length];

for (int i = 0; i < arrayByte.Length; i++)
{
arrayByte[i] = Convert.ToByte(arrayChar[i]);
}

return arrayByte;
}

static void Main(string[] args)
{
byte[] arrayDesKey = ByteDonustur(desKey);
byte[] arrayDesIv = ByteDonustur(desIv);

DESCryptoServiceProvider des = new DESCryptoServiceProvider();
ICryptoTransform cDecryptor = des.CreateDecryptor(arrayDesKey,arrayDesIv);
CryptoStream cStream = new CryptoStream(new FileStream(“C:simetrik.text”, FileMode.Open),cDecryptor, CryptoStreamMode.Read);
Console.WriteLine(new StreamReader(cStream).ReadToEnd());
Console.ReadLine();
}
}

ASİMETRİK ŞİFRELEME KULLANMAK

Simetrik şifreleme algoritması kullandığımız zaman, uygulamayı kullananların aynı ortak şifre çözücü anahtara sahip olmaları gerekir. Asimetrik şifreleme algoritması kullandığınız zaman veriyi şifrelemek ve çözmek için kullanılan anahtar farklıdır. Asimetrik şifreleme algoritmaları bir anahtar çifti kullanır. Eğer veriyi bir anahtar ile şifrelediyseniz çözmek için diğer anahtarı kullanırsınız.

.NET platformundaki sınıflar aşağıdaki asimetrik algoritmaları desteklemektedir.

  • DSA – Dijital İmza Algoritması(Digital Signature Algorithm – Birleşik Devletler Hükümetinin Dijital Doğrulama Standartı). DSACryptoServiceProvider sınıfı tarafından uygulanmaktadır.
  • RSA – Bu Algoritma, RSACryptoServiceProvider sınfı tarafından uygulanmaktadır.

Her iki metodta AsymmetricAlgorithm sınıfında uygulanmaktadır. Bu yüzden aynı metod ve özelliklerin bir çoğunu paylaşmaktadırlar. Sınıflardan herhangi birisini yaratırsanız, genel ve özel anahtarları otomatik olarak üretilir.Genel veya özel anahtara ToXmlString ya da ExportParameters metotları ile erişebilirsiniz. ToXmlString metodu, genel ve özel anahtarları XML dizesinde tutar.

Aşağıdaki örnekte DSACryptoServiceProvider sınıfını yaratıp özel ve genel anahtarlarını görüntülemektedir.

DSACryptoServiceProvider dsa = new DSACryptoServiceProvider();

Console.Write(“Özel Anahtarlar : “);
//Özel Anahtarı Görüntülemek İçin true
Console.WriteLine(dsa.ToXmlString(true));

Console.Write(“Genel Anahtarlar : “);
//Genel Anahtarı Görüntülemek İçin false
Console.WriteLine(dsa.ToXmlString(false));

İşlemin sonucunda aşağıdakine benzer bir çıktı üretecektir.

örn : AsimetrikWrite.cs

class AsimetrikWrite
{
static void Main(string[] args)
{
byte[] dizi = {1,2,3,4,5,6,7};

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
byte[] sonucEncrypt = rsa.Encrypt(dizi,false);

for(int i = 0; i < sonucEncrypt.Length; i++)
Console.Write(sonucEncrypt[i] + ” “);
}
}

Çıktı Sonucu Aşağıdaki Gibi Olmalıdır.

class AsimetrikRead
{
static void Main(string[] args)
{
byte[] dizi = {1,2,3,4,5,6,7};

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
byte[] sonucEncrypt = rsa.Encrypt(dizi,false);

for(int i = 0; i < sonucEncrypt.Length; i++)
Console.Write(sonucEncrypt[i] + ” “);

Console.WriteLine(“nn”);

byte[] sonucDecrypt = rsa.Decrypt(sonucEncrypt,false);

for(int i = 0; i < sonucDecrypt.Length; i++)
Console.Write(sonucDecrypt[i] + ” “);

Console.ReadLine();
}
}

Decrypt İşleminin Sonucu Aşağıdaki Gibi Olmalıdır.

Tuğrul Uğurlu

C#’da ArrayList Sınıfının Kullanımı

Posted in Uncategorized etiketler ile , , , , , , on Ocak 17, 2009 by ammoti

Programların çoğunda birden fazla aynı tipte  değişkenlere ihtiyaç duyarız. Bu sorunun çözümü olarak birçok dilde kullanılan veri yapıları ,dizilerdir. Bildiğimiz klasik dizilerin programlama tekniklerine getirdikleri kolaylıkların dışında birtakım kısıtlamaları da vardır. Bu makalede klasik dizilerde sık sık karşılaştığımız çeşitli sorunları ve bu sorunları nasıl çözebileceğimizi inceleyeceğiz.

.NET platformunun sınıf kitaplıklarında bulunan ve programcıların işlerini çok kolaylaştıran ArrayList sınıfı ile klasik dizilerde karşılaştığımız sorunları nasıl çözeceğimizi göreceğiz.

Klasik dizilerle çalışırken karşılaşabileceğimiz temel sorunları şu şekilde sıralamak mümkündür:

  • Dizilerin sınırları sabittir.
  • Dizilerin tüm elemanları aynı türden olmalıdır.
  • Kullanmadığımız dizi elemanlarından dolayı bellek alanları gereksiz yere işgal edilmektedir.

Örneğin sayısını bilemediğimiz bir dizinin eleman sayısını 500 olarak belirlediğimizi varsayalım. Çalışma zamanında dizimizin sadece 10 elamanını kullandığımız durumda diğer 490 elemanlık bellek alanı boş olarak kalır. Öte yandan dizimizde tutmak istediğimiz değişkenlerin sayısı 501 bir olduğu bir durumda “IndexOutOfRangeException” istisnai durumu ortaya çıkar ve program bu hatadan dolayı sonlanır.

Mesela aşağıdaki kodu derlemeye çalışalım:

 

using System;
    

class CshaprNedirCom
{
    static void Main(string[] args)
    { 
        int[] intDizi= new int[10];

       try 
       { 
           intDizi[20]=5;
       } 

       catch( Exception e) 
       {
          Console.WriteLine(e.GetType());
       }

       Console.ReadLine();

    }

}

Yukarıdaki programda intDizi ‘mizi 10 eleman alacak şekilde tanımlamamıza rağmen bu dizinin 20. elemanına ulaşıp ona birşeyler atamaya çalıştık. Bu durumda programımız çalışırken hata verdi. Çünkü dizinin sınırları bellidir ve bu sınırların dışına çıkamıyoruz. Eleman sayısı ihtiyacımıza göre değişen bir veri yapısı olması gerçekten hoş olmaz mıydı? Evet C#’da böyle bir dizi yapımız var. Bunun ismi ArrayList’tir.

ArrayList sınırları dinamik olarak değişebilen diziler olarak tanımlanır. Bu veri yapısı .NET sınıf kütüphanesininSystem.Collections isim alanında bulunur. İsterseniz ArrayList’i nasıl kullanacağımızı bir örnekle inceleyelim:

using System;
using System.Collections;  // ArrayList sınıfnı kullanmak için 
                                    // System.Collection isimalanını eklemeliyiz..
    

class CshaprNedirCom
{
       static void Main(string[] args)
       {
              ArrayList aList= new ArrayList();        // aList isimli ArrayList nesnesi oluşturalım.

              // aList nesnemize sırası ile 5, 8, 1, 17 ve 20 değerlerini 
              // Add metodu ile ekleyelim.

              aList.Add(5);
              aList.Add(8);
              aList.Add(1);
              aList.Add(17);
              aList.Add(20);

              // aList’in elemanlarını ekrana yazdıryoruz:
              Console.WriteLine(“t aList’in elemanları:”);
              foreach(int eleman in aList)
              Console.WriteLine(eleman);

              // aList dizimizden 8 ve 20 değerlerini çıkartalım:
              aList.Remove(8);
              aList.Remove(20);

              // aList dizimize 66 ve 4 değerlerini ekleyelim:
              aList.Add(66);
              aList.Add(4);

              Console.WriteLine(“nt aList dizisinden 8 ve 20′ çıkartıp, 66 ve 4 ekledik:”);
              foreach(int eleman in aList)
                   Console.WriteLine(eleman);

 

              Console.ReadLine();

       }
}


Yukarıdaki örneğimizde öncelikle ArrayList sınıfını kullanmak için NET sınıf kütüphanesinin System.Collections isim alanınını kullanacağımızı 
using System.Collections; ile bildiriyoruz. Main fonksiyonumuzun içindeki ilk satırda, ArrayList aList= new ArrayList() , aList ismini verdiğimiz ArrayList sınıfından bir nesne oluşturuyoruz. aList nesnemizi oluşturduğunuz satırdan sonraki beş satırda ArrayList sınıfının Add() metodu ile aList adlı dizimize elemanları ekliyoruz.

Daha sonra aList diziminizin elemanlarını ForEach döngüsü ile tek tek ekrana yazdıyoruz. ArrayList sınıfındaki bir nesnenin elemanlarını tek tek silmek için Remove() metodunu kullanırız. Remove() metodu ile istediğimiz elemanı diziden atabiliriz. Biz de 8 ve 20 elemanlarını diziden attık. Son olarak dizimize 66 ve 20 elemanlarını ekleyip dizinin son halini ekrana yazdırdık.

C# dilinde normal diziler bildiğiniz gibi sadece aynı tipten verileri tutar. Ama ArrayList sınıfına ait dizilerimiz her türlü nesneyi aynı dizi içinde tutabilir. Yani aynı dizide int, float, ve string tiplerindeki değişkenleri depolama şansımız var. Mesela aşağıdaki kod C# dili kuralları çerçevesinde geçerli bir koddur:

          ArrayList karmaList= new ArrayList(); // karmaList isimli ArrayList nesnesi oluşturalım.

          karmaList.Add(“Ahmet”);
          karmaList.Add(12);
          karmaList.Add(true);
          karmaList.Add(32.4f);
          karmaList.Add(‘c’);

Bu kod ile karmaList isimli ArrayList nesnemizin içinde string, int, bool, float ve char tiplerinden oluşan verileri aynı anda saklarız. ArrayList sınıfının bize sunduğu diğer bir güzel özellik ise tek bir komut ile ArrayList dizimizin içerisindeki elemanları ters çevirebilmemizdir. Ters çevirme işlemi için Reverse() metodu kullanılır. İsterseniz Reverse() metodunu ve ArrayList’lerde nasıl birden farklı türdeki elemanları kullanacağımızı bir örnekle inceleyelim:

using System;
using System.Collections;  // ArrayList sınıfnı kullanmak için 
                                    // System.Collection isimalanını eklemeliyiz..
    

class CshaprNedirCom
{
        static void Main(string[] args)
        {
                // karmaList isimli ArrayList nesnesi oluşturalım.
               
 ArrayList karmaList= new ArrayList();        

                // karmaList’e değişik tipte elemanlar ekliyoruz.
                karmaList.Add(“Ali”);
                karmaList.Add(23);
                karmaList.Add(false);
                karmaList.Add(52.8d);
                karmaList.Add(‘r’);

                // karmaList’in elemanlarını ekrana yazdırıyoruz:
                Console.WriteLine(“t karmaList’in elemanları:”);
                foreach(object eleman in karmaList)
                        Console.WriteLine(eleman);

                karmaList.Reverse();         // karmaList’imizi ters çeviriyoruz.

                Console.WriteLine(“n —> karmaList’in elemanları ve türleri <—”);
                foreach(object eleman in karmaList)
                Console.WriteLine(“Türü: {0,15} değeri: {1,7}”,eleman.GetType(), eleman);

                Console.ReadLine(); 
        }
}

Yukarıdaki programda karmaList isimli ArrayList sınfından bir nesne oluşturduktan sonra onu değişik türlerden veriler ile doldurduk. Bu dizinin elemanlarını sıra ile foreach döngüsü yardımıyla ekrana yazdırdık. karmaList.Reverse() satırında ise dizimizi ters çevirdik. Son işimizde ise karmaList dizisinin elemanlarını ekrana tek tek yazdırırken aynı zamandaeleman.GetType( ) her elemanın türünü bulup yazdık.

Makalemizi ArrayList sınıfının temel metodlarının tablosunu vererek bitirmek isterim. Bu tablodaki metodların işimize yaracağı kanaatindeyim.

Add Bir nesneyi ArrayList’in sonuna ekler.
BinarySearch Sıralanmış bir ArrayList içinde bir nesneyi Binary search algoritması kullanarak arar.
Clear ArrayList’in tüm elemanlarını siler. Sıfırlar.
Contains Herhangi bir nesnenin ArrayList’in elemanı olup olmadığını kontrol eder.
Insert Dizinin sonuna değilde istediğimiz bir yerine indeksini belirterek eklememizi sağlar.
Remove Herhangi bir elemanı diziden siler.
Reverse Diziyi ters çevirir.
Sort ArrayList’i sıralar.

Ahmet Faruk Nacaroğlu