Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan kapsamlı bir C# programlama dersidir. Eğitmen, Visual Studio 2017 üzerinde konsol uygulamaları üzerinden C# programlama dilinin temel kavramlarını adım adım anlatmaktadır.
- Video, C# programlama dilinde temel kavramları sistematik bir şekilde ele almaktadır. İlk olarak değişkenler ve veri tipleri (int, string, double, decimal, bool) tanıtılmakta, ardından diziler, kontrol yapıları (if-else, switch-case), döngüler (for, while, foreach) konuları işlenmektedir. Daha sonra sınıflar, metotlar, instance ve statik sınıflar, listeler ve veritabanı işlemleri gibi daha ileri seviye konulara geçilmektedir.
- Eğitim boyunca her konu, kod örnekleri ve pratik uygulamalar üzerinden gösterilmektedir. Özellikle "Kişi" sınıfı, "Veritabanı" sınıfı ve "NBC" uygulaması gibi örnekler üzerinden kavramlar somutlaştırılmaktadır. Video, MVC uygulamalarında model kavramının sınıf tanımlama ile ilişkisini de açıklamakta ve veritabanı işlemleri için listelerin nasıl kullanılacağını göstermektedir.
- C# Konsol Projesi Oluşturma
- Konsol projesi Visual Studio 2017 üzerinde oluşturulabilir.
- Yeni proje oluşturmak için File menüsünden New proje seçilmeli, C# template altında C# seçilmeli.
- Proje tipi olarak Konsol App (Nokta NET Framework) seçilmeli ve projeye isim verilmeli.
- 01:18Konsol Projesinin Yapısı
- Konsol projesinde sadece bir Program.cs dosyası bulunur.
- App.config dosyası uygulama hakkındaki genel ayarların olduğu yerdir.
- Program.cs dosyası içindeki Main metodu projeyi çalıştırdığınızda ilk çalışacak kodları içerir.
- 02:26Değişkenler Kavramı
- Değişkenler programlama dillerinin en önemli kavramlarından biridir.
- Değişkenler, kullanıcıdan alınan verileri geçici olarak saklamak için kullanılır.
- Değişkenler RAM üzerinde tanımlanır ve programın çalışması süresince var olmaya devam eder.
- 03:57Değişken Türleri ve Tanımlama Kuralları
- C# ortamında değişken tanımlaması şu şekilde yapılır: int sayıBir;
- Değişken tipleri int, string, double, decimal gibi olabilir.
- Değişken isimleri sayısal ifade ile başlayamaz, arada boşluk olamaz, Türkçe karakter kullanılamaz ve dilin anahtar kelimeleri kullanılamaz.
- 07:03Değişken Tanımlama ve Kullanımı
- Aynı süslü parantezler içerisinde aynı değişken ismi kullanılamaz.
- Değişkenlere değer atama yapılırken tırnak kullanılmaz.
- Konsol uygulamalarında kullanıcıya bilgi göstermek için Console.WriteLine kullanılır, programın kapanmaması için Console.ReadLine eklenmelidir.
- 09:57Yorum Satırı ve String Değişkenleri
- Kod satırlarını yorum satırı yapmak için "Ctrl+K+C" kısayolu kullanılabilir.
- String tipinde değişken tanımlarken tırnaklar kullanmak gerekir, aksi takdirde hata verir.
- String tipte değişkenlerde toplama işlemi, sayısal ifadeleri toplamak yerine değerleri birleştirmek anlamına gelir.
- 13:04Boolean Değişkenleri
- Boolean tipinde değişkenler true veya false değerlerini alabilir.
- Boolean değişkenleri genellikle seçim kutuları gibi durumları temsil eder.
- Boolean değişkenlerin değeri değiştirildiğinde, en son atanan değer ekrana yazılır.
- 14:25Diziler
- Diziler, tek bir değişken içerisinde birden fazla değer saklamak için kullanılır.
- Diziler köşeli parantezler ile tanımlanır ve elemanları indeks numaralarına göre ayrılır.
- Dizilerde indeks numaraları sıfırdan başlar, yani ilk eleman 0. indekste bulunur.
- 17:09Dizi Elemanlarını Erişim ve Yazdırma
- Dizi elemanlarına köşeli parantezler içinde indeks numarası belirtilerek erişilir.
- Console.WriteLine() fonksiyonu kullanılarak dizi elemanları ekrana yazdırılabilir.
- Dizilerdeki elemanlar değiştirilebilir.
- 19:17Diziler ve Elemanlara Erişim
- Dizilerde elemanlara erişim ve tanımlama işlemleri basit bir şekilde yapılabilir.
- Dizi elemanları index numarasıyla erişilebilir ve değerleri değiştirilebilir.
- 20:16Kontrol İfadeleri
- Uygulamalarda kullanıcı girdilerini kontrol etmek için if ve switch-case yapısı kullanılır.
- If yapısı, belirli bir koşulun doğru (true) veya yanlış (false) olmasına göre farklı kod bloklarını çalıştırır.
- Else bloğu, if koşulunun yanlış olduğunda çalışacak kodları içerir.
- 24:04İç İçe İf Blokları
- İç içe if blokları, birden fazla koşul kontrolü yapmak için kullanılır.
- Code snippet özelliği, hızlı bir şekilde if bloğu oluşturmak için kullanılabilecek bir kısayol sağlar.
- İç içe if blokları, kullanıcı girdilerini farklı aralıklarda kontrol etmek için kullanışlıdır.
- 25:53Switch-Case Yapısı
- Switch-case yapısı, bir değişkenin farklı değerlerine göre farklı işlemler yapmak için kullanılır.
- Her case bloğu, değişkenin belirli bir değere eşit olduğunda çalışacak kodları içerir.
- Break anahtar kelimesi, bir case bloğu çalıştırıldığında diğer case'leri kontrol etmemesi için kullanılır.
- 29:09Döngüler
- Döngüler, belirli bir durumu sürekli kontrol altında tutmak veya bir dizi içindeki her elemana erişmek için kullanılır.
- Uygulamalarda kullanıcı girdilerini sürekli kontrol etmek veya bir dizinin tüm elemanlarını işlemek için döngüler gereklidir.
- Bu derste for, while ve foreach döngüleri gösterilecektir.
- 31:28Döngülerin Kullanımı
- For döngüsü için ilk olarak bir kontrol değişkeni tanımlanır ve başlangıç değeri verilir.
- For döngüsü, kontrol değişkeni belirtilen değenden küçük olduğu sürece tekrarlanır ve her döngüde kontrol değişkeni artırılır.
- Dizi elemanlarını yazdırmak için for döngüsünde dizinin length (eleman sayısı) kadar döngü çalıştırılır.
- 34:33While ve Foreach Döngüleri
- While döngüsünde kontrol değişkeni önceden tanımlanmalı ve döngü içinde arttırma işlemi yapılmalıdır, aksi halde sonsuz döngüye girilir.
- Foreach döngüsü, koleksiyondaki her elemanı sırayla bir değişkene kopyalar ve indeks bazlı çalışmadan kolaylık sağlar.
- Foreach döngüsü listeler üzerinde daha basit kullanım sunar, ancak indeks bazlı işlem yapmak için while veya for döngüleri tercih edilmelidir.
- 36:59Sınıf Kavramı
- Sınıf kavramı, veritabanındaki bilgileri kullanıcıya taşırken model sınıfı olarak kullanılır.
- Birden fazla dizi kullanmak yerine, sınıf kullanarak bilgileri sistemli bir şekilde taşıma sağlanabilir.
- Sınıf tanımlanırken, namespace içerisinde "class" anahtar kelimesi kullanılarak sınıf adı belirlenir ve sınıf içine gerekli değişkenler tanımlanır.
- 40:17Sınıf Kavramı ve Örnek Oluşturma
- Sınıf kavramında, sınıfın bir örneğini oluşturarak (new deyimi ile) kullanabilirsiniz.
- Sınıfın elemanlarını dışarıya açmak için "public" erişim belirteci kullanmalısınız.
- Oluşturulan nesnelerin elemanlarına erişmek için nesneAdı.elemanAdı şeklinde kullanabilirsiniz.
- 42:30Farklı Nesne Oluşturma Yöntemleri
- Nesneleri farklı şekilde oluşturabilirsiniz: new deyimi ile veya süslü parantezler içinde elemanları belirterek.
- Oluşturulan nesnelerin bilgilerini konsolda yazdırmak için Console.WriteLine kullanabilirsiniz.
- MVC'de model kavramı da sınıf tanımlama işi gibidir; veritabanından gelen bilgileri bir sınıfa aktarıp view'e taşıyabilirsiniz.
- 44:27Sınıflarda Metotlar
- Sınıflar içerisinde metotlar, o sınıfa hizmet eden elemanlardır.
- Metotlar için erişim belirteci (public, private vb.) belirtilmelidir.
- Metotlara geri dönüş değeri olmayabilir (void) veya olabilir (string, int vb.).
- 48:38Aşırı Yüklenmiş Metotlar
- Aynı isimde farklı parametrelerle aşırı yüklenmiş metotlar oluşturulabilir.
- Aşırı yüklenmiş metotlar, aynı isme sahip ancak farklı parametreleri alan metotlardır.
- Metotların erişim belirteci önemlidir; public ise dışarıdan erişilebilir, private ise sadece sınıf içerisinde kullanılabilir.
- 53:39Instance ve Statik Sınıflar
- Instance sınıflar, vitrindeki sınıfın kopyalarını oluşturarak her kişi için ayrı nesneler çıkartıp içlerini doldurma imkanı sağlar.
- Statik metotlar (referans metotlar) kopyası alınamaz, sadece vitrindeki sınıf kullanılır.
- Instance sınıflar nesne oluşturulup farklı kullanıcılar için bilgiler doldurulabilirken, statik sınıflar uygulama boyunca tek bir kopyası oluşturulur.
- 55:58Statik Sınıfların Kullanım Alanları
- Statik sınıflar, uygulama boyunca hizmet edecek olan ve kopyası alınmayacak basit işlemler için kullanılır.
- Örneğin, sayıların toplamını, çarpımını hesaplayan veya Türkçe karakterleri silen metotlar içeren sınıflar statik olmalıdır.
- Statik sınıfların içerisinde sadece statik metotlar oluşturulabilir.
- 56:34Statik Sınıf Örneği
- Statik bir "HelperMetodlar" sınıfı oluşturulabilir ve içerisinde "KarakterDuzelt" adında statik bir metot yer alabilir.
- KarakterDuzelt metodu, gelen string değerindeki Türkçe karakterleri değiştirerek düzeltilmiş halini döndürebilir.
- Statik metotlar için nesne türetmek gerekmez, doğrudan sınıf adı üzerinden erişilebilir.
- 1:00:01Instance ve Statik Sınıf Örneği
- Instance tipte bir "Ürün" sınıfı oluşturulabilir ve ürün adı, fiyatı, açıklama ve satış durumu gibi özellikler içerebilir.
- Statik tipte bir "Veritabanı" sınıfı oluşturulabilir ve içerisinde ürünleri saklayan bir "Ürünler" dizisi tutulabilir.
- Veritabanı sınıfının yapıcı fonksiyonu (constructor) çalıştığında, Ürünler dizisine önceden belirlenen ürünler eklenebilir.
- 1:05:19Veritabanı Sınıfı Kullanımı
- Veritabanı sınıfında "ÜrünleriGetir" adında bir metot oluşturulabilir ve bu metot ürün dizisini döndürebilir.
- ÜrünleriGetir metodu kullanılarak, foreach döngüsüyle ürünlerin adı ve fiyatı ekrana yazdırılabilir.
- 1:06:51Statik Metotlar ve Veritabanı İşlemleri
- Veritabanından tüm ürünler getirilip, statik metodla instance metodu kullanılarak veritabanından nesne üretilmiştir.
- Ürünler dizisinin içerisine getirilen veriler foreach döngüsü ile dolaşarak elemanlarına ulaşılmıştır.
- Statik metotlar, uygulamaya özel veritabanı sınıfı için kullanılırken, instance metotlar her türetilen veritabanı nesnesi için özel veri üretir.
- 1:08:17Dizilerin Sınırlamaları ve Dinamik Listeler
- Dizilerin kapasitesi sabittir, örneğin yedi eleman kapasiteli bir dizeye sekizinci eleman eklenmeye çalışıldığında hata alınır.
- Dizilerin alternatifi olan dinamik listeler, eleman sayısını dinamik olarak ayarlayarak üzerine istediğiniz kadar eleman ekleyebilir veya çıkarabilirsiniz.
- Bir sonraki derste dizilerin alternatifi olan dinamik listeler gösterilecektir.
- 1:10:15Listelerin Tanımlanması ve Kullanımı
- Listeler, jenerik yapıda olup, listeye atılacak eleman tipini belirtmek gerekir (örneğin List<string>).
- Listeye eleman ekleme için Add metodu kullanılır ve eklenen elemanın tipi listin belirlenen tipiyle aynı olmalıdır.
- Listeler string, int veya sınıf tipinde (örneğin Ürün) oluşturulabilir ve elemanları süslü parantezler içinde belirtilerek eklenir.
- 1:14:14Listelerin Elemanlarına Erişim
- Listelerin elemanlarına ulaşmak için for döngüsü kullanılabilir, örneğin isimler listesinin count'u kadar dönen bir for döngüsü ile elemanlar ekrana yazdırılabilir.
- Ürün listesinin elemanlarına da for döngüsü ile ulaşılarak ürün adı ve fiyatı gibi bilgiler ekrana yazdırılabilir.
- For döngüsü yerine foreach döngüsü kullanmak daha kolaydır, örneğin ürünlerin içerisindeki her bir elemanı ürün değişkenine atayarak dolaşılabilir.
- 1:16:50Veritabanı Sınıfında Liste Kullanımı
- Veritabanı sınıfındaki diziyi liste ile değiştirmek için önce yorum satırı yapılıp, List<Ürün> türünde bir liste oluşturulur.
- Ürünlerin içerisine eleman eklemek için Add metodu kullanılabilir veya liste elemanları süslü parantezler içinde virgülle ayrılarak eklenir.
- Veritabanı sınıfına ürün ekleme metodu eklenerek, dışarıdan alınan ürün bilgilerinin ürünler listesine eklenebilmesi sağlanır.
- 1:19:11Listelerin Kullanımı ve Ürün Ekleme
- Dışarıdan ürün tipine bir değer göndererek ürünü gelecek ürünlerin üzerine ekleyebilirsiniz.
- Ürünler aynı sınıf içerisinde statik olduğu için, yeni ürün direk mevcut elemanın üzerine gelmiş olacak.
- Yeni bir ürün oluşturup elemanlarını doldurduktan sonra, bu ürünü veritabanına ekleyebilirsiniz.
- 1:20:01Veritabanından Ürünleri Listeye Ekleyerek Gösterme
- Veritabanından getirilen ürünleri liste içerisinde saklayabilir ve foreach ile ekrana yazdırabilirsiniz.
- Ürün eklendiğinde, yeni ürün listenin sonuna eklenir.
- Ürünün ID'si, listenin son sırasındaki değere atanır.
- 1:21:22NBC Uygulamasında Listelerin Kullanımı
- NBC uygulamasında veritabanından bütün ürünleri getirip, "ürün" isimli sınıfı bir listenin içerisine alacaksınız.
- Veritabanından bu listeyi dolduracaksınız.
- Doldurulan ürünleri konsola yazdırır gibi, HTML etiketleri üreterek view içerisinde kullanıcılara göstereceksiniz.