Cuma, Ağustos 31

C# Türleri(Referans-Değer)

        C# ta veri türleri Reference(Referans) Ve Value(Değer) olarak 2 ye ayrılır

Reference Type(Başvuru türleri)
        Bu tipler Heap bolgesindeki değerlerin referansını tutar ve veriye stack bölgesinde bir işaret tutarlar.
  • Class (Sınıf)
  • Interface (Arabirim)
  • Delegate (Temsilci)
  • Dynamic (Dinamik)
  • Object (Nesne)
  • String (Dize)
Value Type(Değer türleri) 
    Bu tipler ise veriyi stack bölgesinde tutarlar.
  • Enum (Sabit)
  • Struct (Yapılar)
  • char
  • 15 değer tipi ek olarak ayrı bir makalede özellikleri ile asağıdadır.
c#veri-tipleri

C# Char

using System.Char; Namespace altındadır.
MaxValue = (char)0xffff
MinValue = '\0'
            En çok kullanılan methodları ve ekran cıktıları aşağıdadır.

char ch1 = '1';
String str = "test string";

Console.WriteLine(System.Char.GetNumericValue(ch1));  // Output: "1"
Console.WriteLine(Char.IsControl('\t'));                             // Output: "True"
Console.WriteLine(System.Char.IsDigit(ch1));                  // Output: "True"
Console.WriteLine(Char.IsLetter(','));                               // Output: "False"
Console.WriteLine(Char.IsLower('u'));                              // Output: "True"
Console.WriteLine(System.Char.IsNumber(ch1));             //Output True
Console.WriteLine(Char.IsPunctuation('.'));                       // Output: "True"
Console.WriteLine(Char.IsSeparator(str, 4));                     // Output: "True"
Console.WriteLine(Char.IsSymbol('+'));                            // Output: "True"
Console.WriteLine(Char.IsWhiteSpace(str, 4));                 // Output: "True"
Console.WriteLine(Char.Parse("S"));                               // Output: "S"
Console.WriteLine(Char.ToLower('M'));                            // Output: "m"
Console.WriteLine(System.Convert.ToString('x'));            // Output: "x"

Ekran çıktısı aşağıdadır.

Ekran Çıktısı

C# String Temizleme

      String ifadeyi temizlemek veya degistirmek icin kullanılan bir cok method vardır. Char sınıfı ile ilgili makalede methodlardan bahsedicem. Aşağıdaki kod string ifadeyi sayılardan temizliyor.

string isim = "Den6564eme";
string temiz = "";
for (int i = 0; i < isim.Length; i++)
{
        if (char.IsLetter(isim[i]) || char.IsWhiteSpace(isim[i]))
            temiz += isim[i];
}
Console.WriteLine(temiz);

Ekran çıktısı aşağıdadır.
String Temizleme

C# Faktoriyel Hesaplama

Faktöriyel nedir?

        Faktöriyel, matematikte sağına ünlem işareti konulmuş sayıya verilen isim, daha genel olan Gamma Fonksiyonu`nun tam sayılarla sınırlanmış özel bir durumudur. Faktöriyel fonksiyonu verilen pozitif tamsayının kendisinden önceki bütün tamsayılarla 1'e inilinceye kadar çarpılması sonucunda elde edilen çarpımı gösterir.

ulong sayi = ulong.Parse(Console.ReadLine());
ulong Sonuc = 1;
for (ulong i = sayi; i > 0; i--)
{
       Sonuc *= i;
}
Console.WriteLine(Sonuc);

Not : İşlem sınırı ulong tip'inin alabileceği değer uzunluğu ile sınırlıdır.

C# Int Ters Çevirme

          Bu işlemi string olarak kolaylıkla yapabilirdik fakar int a zorlanıyorsanız bu çözum olabilir.

int sayi = 123456; 
int Sonsayi = 0;
for (; ; )
{
      Sonsayi = sayi % 10;
      Console.Write(Sonsayi);
      sayi = sayi / 10;
      if (sayi <= 0)
            return;
}
Ekran cıktısı aşağıdaki gibi.
int ters çevirme

C# String Ters Çevirme

       String olarak aldığınız veriyi bir diziye atıp Array sınıfının Reverse method'u ile ters cevirebilirsiniz.

string deger = "deneme";
char[] dizi = deger.ToCharArray();
Array.Reverse(dizi);

Perşembe, Ağustos 30

C# Asal Sayı Bulucu

          Çok Basit bir yöntem ile asal sayıları (int MaxValue = 2.147.483.647 aşmayacak kadar küçük sayıları) bulabiliyoruz.Daha büyük olan asal sayılar icin ise long, ulong gibi büyük değişkenleri, Sonsuz sayılar içinse kendi tipinizi(Tabi ram sınırı var) yazabilirsiniz. 
 
int sayi = int.Parse(Console.ReadLine());  //Sayıyı Alıyoruz
bool Sonuc = false;

        if (sayi % 2 == 0)
             Console.WriteLine("Asal Sayı Değil");
        else
        {
              Sonuc = AsalSayiBul(sayi);    //Sayıyı Method'a Gonderiyoruz
              if (Sonuc == true)                   //Dönüş Tipi true ise Sonuç Asal Sayı
                 Console.WriteLine("Asal Sayı");
              else
                 Console.WriteLine("Asal Sayı Değil");
         }

static bool AsalSayiBul(int sayi)
{
    for (int i = 2; i < sayi; i++)
   {
           if (sayi % i == 0)
                    return false;
   }
   return true;
}

C# Mail Gönderme

      C# da mail gondermenin çeşitli yolları vardır. Ben bir yolunu sizlerle paylaşıyorum.

SmtpClient cli = new SmtpClient("smtp.gmail.com");
                  cli.Credentials = new NetworkCredential("MailAdresiniz@gmail.com", "Sifreniz");
                  cli.EnableSsl = true;
                  cli.Port = 587; 
MailMessage mail = new MailMessage();
                      mail.To.Add("MailAtilacakAdress");
                      mail.To.Add("MailAtilacakAdress");//  çoğaltılabilir
                      mail.From = new MailAddress("MailAdresiniz@gmail.com", "Baslık");
                      mail.Subject = "Konu"; 
                      mail.Attachments.Add(new Attachment("c:\\Dosya.rar"));
                      mail.Body = DateTime.Now.ToString() + "Metin";
cli.Send(mail);

     Not: isterseniz "cli.Send(mail)" kısmını try catch bloğuna alıp hata olma durumunu yakalarsınız.

Salı, Ağustos 28

C# Veri Tipleri

C# Veri Tipleri -->

C# Veri Tipleri

    Önceden Tanımlı toplam 15 veri tipi vardır. Işaretli (Signed) ve Işaretsiz(Unsigned) olarak 2 ye ayrılırlar. Tam liste ve özellikleri aşağıdadır.
  • Işaretli(Signed) ; 0 ve 0'dan büyük değer alan veri tipidir.
  • Işaretsiz(Unsigned) ; 0'dan küçük, 0 ve 0'dan büyük değer alan veri tipleridir.

Tam Sayı Tipleri

  • (sbyte) Kapsamı : -128'den 127
  • (byte) Kapsamı : 0'dan 255
  • (short) Kapsamı : -32.768'den 32.767
  • (ushort) Kapsamı : 0'dan 65.535
  • (int) Kapsamı : -2.147.483.648'den 2.147.483.647
  • (uint) Kapsamı : 0'dan 4.294.967.295
  • (long) Kapsamı : -9.223.372.036.854.775.808'den 9.223.372.036.854.775.808
  • (ulong) Kapsamı : 0'dan 18.446.744.073.709.551.615

Ondalık Sayı Tipleri

  • (float) Kapsamı : -3,40282e+038f'den 3,40282e+038f
  • (double) Kapsamı : -1,79769e+308'den 1,79769e+308
  • (decimal) Kapsamı : -79228....35m'den 79228162514264337593543950335m

Yazı Tipleri

  • (char) Kapsamı : U0000'den Uffff
  • (string) Kapsamı : Bellek ile sınırlı.
  • (object) Kapsamı : Herhangi bir veritipini tutabilir.

Tarih Tipi

  • (DateTime) Kapsamı : Tüm tarih türlerini tutabilir.

Boolean Tip

  • (bool) Kapsamı :True ya da False (Doğru Yanlış) Veri tutabilir.