C# Temelleri
Referans Tipler
Class
Kapsülleme (Encapsulation)
Arayüz (Interface)
- [Gerçek Hayat Projeleri] https://www.youtube.com/watch?v=YdK6w8Swofc&list=RDCMUCRjiquPh4mjPNoOV9eCilXQ&index=3
Sınıf içerisinde erişilmesi istenmeyen özellikler olabilir. Bunlar için kapsülleme uygulayabiliriz. Bu özellikler private anahtar değişkeni ile tanımlanır. Erişimi sınırlandırılmış olan bu özelliklere erişmek için metotları kullanırız.
namespace Pastane
{
class Personel
{
public string ad, soyad, kat, bolum;
string kurum = Asude Pastanesi; //private kabul edilir. (Erişim belirteci) istenilirse private yazılabilir
public void personelBilgi(){
Console.WriteLine(kurum);
Console.WriteLine("{0} {1} {2} {3}", kat, bolum, ad, soyad);
}
}
class AnaProgram
{
string void Main(string[] args)
{
Personel kisi = new Personel();
kisi.ad = "Lale";
kisi.soyad = "Aygün";
kisi.kat = "1. Kat";
kisi.bolum = "Kasa";
kisi.personelBilgi();
Console.ReadKey();
}
}
}
Asude Pastanesi
1. Kat Kasa Leyla Aygün
private anahtar sözcüğü ile ait oldukları sınıf dışından erişim kapatılan özelliklere get ve set anahtar sözcükleri ile erişim sağlanabilir. Bu anahtar sözcükler özelliklerden değer okumak veya özelliklere değer atamak için kullanılırlar. get ya da set sözcüklerinin ikisi de kullanılmak zorunda değildir. Değer atamak istendiğinde set, değer okumak istendiğinde get kullanılabilir.
class Ucgen
{
private state int x, y, z, toplam;
public int kenarX
{
get { return x;}
set { x = value;}
}
public int kenarY
{
get { return y;}
set { y = value;}
}
public int kenarZ
{
get { return z;}
set { z = value;}
}
public int topla()
{
toplam = x + y + z;
return toplam;
}
}
class AnaProgram
{
string void Main(string[] args)
{
Ucgen ucgen = new Ucgen();
ucgen.kenarX = 3;
ucgen.kenarY = 4;
ucgen.kenarZ = 5;
Console.WriteLine("{0} + {1} + {2} = {3}", ucgen.kenarX, ucgen.kenarY, ucgen.kenarZ, ucgen.topla());
Console.ReadKey();
}
}
Basit bir tasarruf uygulaması kodu üzerinden typecast (bilinçli dönüşüm) kullanımını inceleyeceğiz. Kodun detaylarında saatte 2 tl elektrik yakan bir ampul ile totalde %20 tasarruf sağlayan bir ampulün girilen kullanma süresi gibi detaylar ile birlikte faturaya yansıyacak fiyatlarını yazdıran bir kod yazmamız isteniyor.






Type Conversion (tür dönüşümü)’ın bir alt formu olan Typecast konusu anladığım kadarıyla; basit, temel ve bir o kadar da önemli bir konu. Kodlamaya başladığım ilk zamanlarda öğrenmiş olmama rağmen ve hatta şu kısa süreli blog serüvenimde bile bununla ilgili bir örnek yapmış olmama rağmen, yaptığım matematik işlemlerinde bu konuyla ilgili detaylar yüzünden sonuca ulaşamadığımı fark ettiğim bir konu olduğu için tür dönüşümleri için ayrı bir başlık açmak istedim.
Veri türeleri arası dönüşüm, bir değişkenin değişik türdeki hâlinin başka bir değişkene atanmasıdır. Typecast (type casting) de denir. İki formu vardır.



object türündeki bir değişkene başka herhangi bir türdeki değişken ya da sabit (string dışında) + işaretiyle eklenemez.

object türündeki bir değişkene herhangi bir türdeki değişken ya da sabit atanabilir (bilinçsiz tür dönüşümü). object türündeki bir değişkeni başka bir türe çevirmek için tür dönüştürme işlemi kullanılır. Dönüştürülen türlerin uyumlu olması gerekir.

Aynı satırda çifte dönüşüm yapılamaz.

x.ToString(): x değişken ya da sabitini stringe çevirip tutar.

string türüyle ilgili bilinmesi gerekenler:

Tür dönüşümü için metotlar System isim uzayında Convert sınıfındadır. Hemen hemen her tür her türe dönüştürülebilir. Değişken türlerinin CTS (Common Type System) karşılıkları bilinmelidir.


Kaynaklar:
Merhaba, bugün bahsedeceğim örnek kod, konularına tam anlamıyla hakim olduğum bir kod değil fakat bazı araştırmalar ve okumalar yaparak belli bir yere kadar ilerleme kaydettim ve bu kodu yazabildim. Bir sıkıntımız daha var ki, bu kodu yazmayı ve araştırmalarımı 8 Aralık 2019 Pazar günü tamamlamama rağmen yazısını bugün yani 26 Ocak 2020 Pazar günü yazabiliyorum. Açıkçası kodun ayrıntılarını maalesef unutmuşum. Şimdi sizlere anladığım ve hatırladığım kadarını aktarmaya çalışacağım.
Challenge Türü: Easy





string.Split yöntemi, veri tabanında belirli işaretlere göre tek bir alanda tutmak istediğimiz kayıtları, bir veya daha fazla sınırlayıcı temelinde bölerek bir alt dizeler dizisi oluşturur. Genellikle bir dizeyi sözcük sınırlarında ayırmanın en kolay yoluymuş. Ayrıca, diğer belirli karakter veya dizelerde dizeleri ayırmak için de kullanılıyormuş
Split metodunun temel çalışma şekli şöyledir. Bir dizgeyi (karakter dizisi) belirli bir ayraç ile parçalayıp, parçalardan bir dizi döndürür.
Kullanım 1: C# string nesneleri ile kullanılır. Aşırı yüklenmiş bir metottur fakat en sık kullanım şekli ayırıcı olarak bir karakter(char) girilmesi ile yapılır.



Kullanım 2: C# split metodunun aşırı yüklenmiş bir metot olduğunu yazmıştım. Karakterlerden oluşan bir dizi ile birden fazla karakter ile de parçalamak mümkündür.
Örnek: 2019/12/07 18:06 şeklindeki tarihi parçalara ayırma



Bu yazıyı yazarken yararlandığım kaynaklar:
Challenge Türü: Easy





Coderbyte platformunda bu kodu yazarken faktöriyel kodlarını inceliyordum ve bir kullanıcının yazdığı şu koda denk geldim. Aslında inceleyince gayet basit bir mantıkla yazılmış ve daha kısa, pratik görünüyor. İncelemeye, öğrenmeye değer bir kod olduğunu düşünüyorum. Ufku genişletmek için farklı bir bakış açısı olur en azından.
Bugün “Challenges | … ” başlıklı bir seriye başlamayı düşünüyorum. Coderbyte isimli kodlama değerlendirme platformundaki meydan okumalar bu seride olacak. C# öğrendiğim için istenilen kodları C# dilinde yazacağım. Yeni diller öğrendikçe bu diller değişebilir. Bu serinin ilk uygulaması “First Reverse” isimli challenge. Bu cahllenge’ın temel mantığı dizi elemanlarını / ekrandan girilen değişkenleri ters sıra ile yazdırma. ASlında daha önceki yazımda olan bir kod fakat buna rağmen kodu yazaken zorluk çektim. Hala öğrenememişim…
Challenge Türü: Easy







YAPICILAR
GET – SET KULLANIMI
PUBLİC VE STATİC





Normalde, alan ve çevre hesabı yapabilen metodları, main metodu ile aynı sınıf içine yazabilirdik fakat bu kodda başka bir sınıf altında yazılan kodun, main içerisinde objesini nasıl oluşturup alan ve çevre hesabını yaptırdığımızı göreceğiz. Aynı kemik kod üzerinde 2 farklı örnek bulunuyor. Bu kodlar birbiriyle bağımsızdır. Birisi dik üçgenler üzerine, diğeri dikdörtgen üzerine yazılmıştır.






2 haftadır ara ara düşünüp kavrayamadığım, yazamadığım bir koddu. Ağlayacağım.
20 Ekim 2019. * R