C# da bildiğin her hangi bir konuyu paylaşır mısın?

ProgramLama41

Doçent
Katılım
4 Ağustos 2012
Mesajlar
590
Reaksiyon puanı
0
Puanları
0
Arkadaşlar değişik bir sinerji olur inş. :)

Kafamdaki olay herkes c# da bildiği konuları anlatabilir mi.İsteyen zamanı var ise video hazırlar isteyen tamamen kendisi bir yazı hazırlar ve paylaşabilir isteyende bir siteden alıntı yapabilir alıntıyı yazmak şartı ile.1 2 3 fark etmez

mesela örnek olarak :


Switch-Case-Break-Default

dBu yazıda c sharp ile switch-casekullanımına örnek verilerek anlatılacaktır. Switch-case; bir değişkenin aldığı birden fazla değere göre farklı caselerin çalıştırılması gereken durumlarda kullanılır. Çoklu if yapısı gibide düşünülebilir.

1
2
3
4
5
6
7
8
9
10
switch (sayi)
{
case 1: sonuc = "Pazartesi"; break;
case 2: sonuc = "Salı"; break;
case 3: sonuc = "Çarşamba"; break;
case 4: sonuc = "Perşembe"; break;
case 5: sonuc = "Cuma"; break;
case 6: sonuc = "Cumartesi"; break;
case 7: sonuc = "Pazar"; break;
}

Ayrıca birkaç durum için aynı komutu çalıştırmak için şu şekilde kullanabiliriz:
1
2
3
4
5
6
7
8
9
switch (sayi)
{
case 1:
case 2:
case 3: sonuc = "Üçüncü Seçim"; break;
case 4:
case 5:
case 6: sonuc = "Altıncı Seçim"; break;
}
Bunların dışında goto case deyimi ile bir durumda diğer durumların komutlarını çalıştırabiliyoruz. Bu deyimin kullanımı ise şu şekilde:
1
2
3
4
5
6
7
switch (sayi)
{
case 1: sonuc = "100"; break;
case 2: sonuc = "200"; break;
case 3: sonuc = "300"; break;
case 4: goto case 1; //sonuc değeri 100 olacak
}
alıntı:http://www.csharptr.com

gibi paylaşarak çoğaltabiliriz bilgiyi.:thumbup:

Ne diyorsunuz nasıl bir fikir.biraz karışık olacak sırası olmayacak ama zaten öğrenmek için arayan içeriden cımbızla aradığı konuyu çekmesini bilir. :D :D
 

ProgramLama41

Doçent
Katılım
4 Ağustos 2012
Mesajlar
590
Reaksiyon puanı
0
Puanları
0
Birde kendim bir yazı oluşturayım.

C# da Diziler:

Diziler nasıl tanımlanır:
"veri tipi"[] "diziDeğişkenİsmi" = new "veri tipi" [DizininBoyutu]
Örnek:
int[] Dizi1=new int[10]; //içerisine 10 adet sayı alabilir.10 yerine bir değişkende kullanılabilir..Ve dizi tanımlama ile dizi boyutunu verme ayrı satırlarda olabilir.
int b=10;
int[] Dizi1=new int;

Dizileri klavyeden yazarak da atayabiliriz.
int[] Dizi1={1,2,3,4,45,6325,12,452};
string[] Dizi1={"okan","ali" ,"sdadsa"};

DİZİ ELEMANLARINA ULAŞMAK:
Dizi elemanlarına ulaşabilmek için [index] operatörü kullanılır.Dizilerin indexi 0 dan başlar..

int[] dizi1=new int{25,12,10,2,1}; //Bu dizinin 3. elemanı 10 değildir.3. elemanı 2 dir.
0. eleman:25
1.eleman:12
2.eleman:10
3.eleman=2
4.eleman=1

int[] Dizi1={1,2,3,4,5};
int eleman=Dizi1; //Burada eleman değişkenine dizi1 dizisinin tüm elemanlarına atadık.

5 elemanlı bir dizinin 3. elemanına ulaşabilmek için;
int[] Dizi1={1,2,3,4,5};
int eleman=Dizi1[2]; //dikkat edilirse 3. eleman için 2 yazdık.

yanlışlarım olabilir daha 2 haftadır C# öğrenmeye çalışıyorum. :D:hammer:
 

LorusDemon

Öğrenci
Katılım
3 Ağustos 2012
Mesajlar
23
Reaksiyon puanı
0
Puanları
0
aga gec bunları bu anlatdıkların c c++ c# ve nerdeyse tum programlama dılerınde aynı :D
 

hokumus

Asistan
Katılım
15 Mayıs 2012
Mesajlar
173
Reaksiyon puanı
3
Puanları
18
Bence bu başlık altında yorum ile konu anlatmak yerine konu açıp makale olarak anlatmak daha faydalı olacaktır.
 

ProgramLama41

Doçent
Katılım
4 Ağustos 2012
Mesajlar
590
Reaksiyon puanı
0
Puanları
0
Öyle diyorsunuzda hepsinin toplandığı bir yer iyi olur.Arayan bulur..

Dosya işlemleri

Dosyaya yazı yazdırma:
nBu tür işlemlerde Using.System.IO; olmak zorunda.Bu kod satırını ekledikten sonra ;

//Buton içerisine:
StreamWriter asdf = new StreamWriter("C:\\Deneme.txt");
//asdf adında içerisine yazı yazılabilecek bir değişken oluşturduk.StreamWriter komutunu kullanarak.Sonra Dosyanın yerini belirledik
asdf.WriteLine(TextBox1.Text);
//TextBox1 e girilecek yazıyı asdf değişkenine eşitledik ve textboxa yazdığımız Deneme adlı metin belgesine girildi.
asdf.Close();
//Son olarak dosyayı kapattık...

bjwgw.png


klasörümüze gittiğimizde metin belgesine bakıyoruz.

bjwhs.png


Peki işlemi tekrar yaptığımızda ne olur.Size söyleyim tekrar bilgi girmek istediğimizde eski bilgi silinir (shidrtdelete.net) onun yerine yeni bilgiyi kayıt eder.Bunun önüne geçebilmek için;

StreamWriter asdf;
asdf =File.AppendText("C:\\Deneme.txt");

olması gerekiyor...

Dosyayı okuma

n

StreamReader asdf=File.OpenText("C:\\Deneme.txt");

String metin;

metin=asdf.ReadLine();
//Dosyayı satır satır okuyor ve metin değişkenine eşitliyor.
While (metin != null)
//Her satırı yazdırmak için bir döngü oluşturuyoruz.metin boş olmadığı sürece yap.
{
textBox1.Text += metin + "-";
//metin i textBox a yazdırdık.
metin=asdf.ReadLine();
//işlem sonunda tekrar eşitliyoruz döngü içinde.
}

asdf.Close();
//Dosyayı kapat.
 

emrecansahin11

Öğrenci
Katılım
1 Ağustos 2011
Mesajlar
3
Reaksiyon puanı
0
Puanları
0
Hashtable kullanışlıdır dizi değerlere benzer her key için bir value değeri taşır.Sözlüklere benzetebiliriz sözlüklerdede her sözcük için bir anlam bulunur burda aradığımız sözcük key anlamı ise value dur.

Add fonksiyonu object tipinde iki parametre alır biri key bir value.Bildiğiniz gibi c# ta herşey bir object'dir yani bu fonksiyona istediğiniz herhangi iki nesneyi parametre olarak verebilirsiniz.


Kod:
Hashtable hash = new Hashtable();
            hash.Add("key", "value");
            hash.Add(123, 544);

            Console.WriteLine(hash["key"].ToString());
            Console.WriteLine(hash[123].ToString());
            Console.ReadLine();
 

ProgramLama41

Doçent
Katılım
4 Ağustos 2012
Mesajlar
590
Reaksiyon puanı
0
Puanları
0
bir iki sorum olacak C# bilen arkadaşlar buyurun..

Default Extension

SaveFileDialog1.CheckFileExists = true;
SaveFileDialog1.CheckPathExists = true;

Bu olayları bana anlatırmısınız.Ne işe yaradıklarını Filan falan ??
 

xlorxlarge

Asistan
Katılım
28 Şubat 2011
Mesajlar
224
Reaksiyon puanı
1
Puanları
18
bir iki sorum olacak C# bilen arkadaşlar buyurun..

Default Extension

SaveFileDialog1.CheckFileExists = true;
SaveFileDialog1.CheckPathExists = true;

Bu olayları bana anlatırmısınız.Ne işe yaradıklarını Filan falan ??

SaveFileDialog1.CheckFileExists = true;//Bu Dosyayı kaydederken olup olmadığını kontrol etsinmi anlamında.
SaveFileDialog1.CheckPathExists = true;//Buda yolun olup olmadığını kontrol etsinmi.
 

ProgramLama41

Doçent
Katılım
4 Ağustos 2012
Mesajlar
590
Reaksiyon puanı
0
Puanları
0
SaveFileDialog1.CheckFileExists = true;//Bu Dosyayı kaydederken olup olmadığını kontrol etsinmi anlamında.
SaveFileDialog1.CheckPathExists = true;//Buda yolun olup olmadığını kontrol etsinmi.

hmm bu kodlar olmadanda zaten kontrol etmiyormuydu ?
 

nobody946

Doçent
Katılım
4 Mayıs 2012
Mesajlar
508
Reaksiyon puanı
2
Puanları
18
Az önce uzun süre kafa yorsuktan sonra aslında çok basit olduğunu görünce kafamı duvara vurmak istediğim fakat son anda vazgeçtiğim ( :) ) ListBoxta önce o öğenin olup olmadığını kontrol eden varsa silen kod yapısı:

Kod:
[FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] (liste.Items.Contains([/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515]"a"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]))[/SIZE][/FONT][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]  
  {
    liste.Items.RemoveAt(liste.FindString([/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515]"a"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]));[/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]
  }
[/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]
[/SIZE][/FONT][/SIZE][/FONT]
 

nobody946

Doçent
Katılım
4 Mayıs 2012
Mesajlar
508
Reaksiyon puanı
2
Puanları
18
Timer Kulanarak Dijital Saat ve Geri sayım sayacı oluşturmak

Öncelikle ismileri zamankutusu ve gerisayimkutusu olmak üzere iki adet label (textbox da olur) ve bir adet timer oluşturun.

Sonra timer'ın interval'ını 1 yapın. Bu saniyede bir kez işlem yapmasını sağlayacak.

Timer'a çift tıklayın. Bize açtığı yer timer'ın her seferde yapacağı işlemleri yazacağımız yer.

Şimdi burada programı aşağı indirin ve bir not defteri açın. Algoritmamızı yazacağız. Böyle yapmak daha sade ve kesin düşünmenizi sağlar ve yazdıklarınızı hatırlamak zorunda kalmayacağınız için o anki işlemi düşünebilirsiniz.

Ben geri sayımı 24.00 a ayarladım, yani gece yarısına.

Şimdi kendi yazdığım notları yapıştırıyorum:

Kod:
o anki saat alınır ssaat adlı değişkene verilir          \ 
o anki dakika alınır sdakika adlı değişkene verilir       > Hepsi Int32 olacak
o anki saniye alınır ssaniye isimli değişkene verilir    /

ssaat değişkeni 23 ten çıkarılır çıkan sonuç saat değişkenine aktarılır        \
sdakika değişkeni 59 tan çıkarılır çıkan sonuç dakika değişkenine aktarılır     > Hepsi Stringe çevrilecek
ssaniye değişkeni 60 tan çıkarılır çıkan sonuç saniye değişkenine aktarılır    /

gerisayimkutusu nesnesinin yazısı Saat + " Saat " + Dakika + " Dakika " + Saniye + " Saniye Kaldı" olarak değiştirilecek

Şimdi notlarımı inceleyelim:
İlk başta atadığım değişkenlerin başına şimdiki manasına gelen ş koymayı düşündüm ama sonra c# amcanın türkçe karakter kabul etmediği kafama dank edince s yaptım.

Bu değişkenleri 23 59 60 tan çıkarmamın sebebi şöyle:
Örneğin saat 23.20 olduğu an geri sayım sayacımızın şu şekilde görünmesi gerekir: 0.40
23.20 ye 0.40 eklersek 23.60 olur.
eğer biz çıkarmayı 23.60 dan değilde 24.00 dan yapsaydık saat 23.20 olduğunda sayaç "1.-20" gösterecekti. düz mantık yine işe yaradı yani :)

Daha sonra gerisayimkutusuna şu biçimde yazdırıyoruz: "22 saat 5 dakika 10 saniye kaldı." ( tabiki bu zamanı uydurdum sabit kalmayacak malumunuz sayaç yapıyoruz :) )

Saat kutusunu yazmamışım notlara onuda başında s olan değişkenlerle yazıyoruz, çünkü onlar şidiki zaman. Zaten kodlarda göreceksiniz.

Notları iyice anladıysanız kod kısmına geçebiliriz:

Timer'a çift tıklayın. Burası sayacın her seferde yapacağı işlemleri yazacağımız bölüm. Hadi başlayalım.

Kod:
Int32 ssaat = DateTime.Now.Hour;
Int32 sdakika = DateTime.Now.Minute;
Int32 ssaniye = DateTime.Now.Second;

Evet başında s olan değişkenleri tanımladık. Saati dakikayı ve saniyeyi almak için "DateTime.Now.Hour/Minute/Second/Milisecond" vb. komutlar var zaten noktaya basınca açılır menüde hepsini görebilirisiniz.
Yanlız saat dakika ve saniye bilgisi "Sayı" olduğu için ve bu sayılar "Tamsayı" olduğu için Int32 ile tanımladık. Sonradan yazdırmak için stringe çeviricez.

Kod:
String saat, dakika, saniye;

Yukarıda saat dakika ve saniye sayıdır, tamsayıdır şeklinde zırvaladım :), ama bu değişkenler labele yazı yazdırmak için kullanılacak o yüzden string olarak tanımladık.

Kod:
saat = Convert.ToString(23 - ssaat);
dakika = Convert.ToString(59 - sdakika);
saniye = Convert.ToString(60 - ssaniye);

Burada notlarda açıkladığım çıkarma işlemini yapıp "Convert.ToString" ile stringe çevirdik.

Kod:
gerisayimkutusu.Text = saat + " saat " + dakika + " dakika " + saniye + " saniye kaldı.";

zamankutusu.Text="Sistem Saati: " + ssaat + ":" + sdakika + ":" + ssaniye;

Burada da Saat ve Geri sayım sayacı kutularımıza yazılarımızı yazdırıyoruz.

ÇOK ÇOK ÖNEMLİ not: Timer'ımızı enabled yapmayı unutmayın...
 
Üst