C# Programlama 2023-2024 Vize Soruları
Implicit ve Explicit Dönüşümler
C# programlarında implicit (örtük) ve explicit (açık) dönüşümler sıklıkla kullanılır. Mesela int bir değişkenin double’a atanması genellikle derleyici tarafından otomatik yapılırken (örtük dönüşüm), double’dan int’e dönüşümde veri kaybı ihtimali olduğu için (int) ifadesiyle açıkça belirterek dönüşüm yapmak gerekir. Bu sorularda da örneklerine rastladığımız gibi (int)(-0.5) dönüştürme ya da (double)a++ ifadesi explicit dönüşümün örneklerindendir.
Operatörler ve Operatör Önceliği
Koşul ifadelerinde (?:), mantıksal (&&, ||, &, |, !) ve bitwise (~, ^, <<, >>) operatörlerinin kullanımına dikkat etmek çok önemlidir. Örneğin bitwise kaydırma (x >>= 2;) ile sayının değerini ikili olarak kaydırıp sonucu değiştirebilir, XOR operatörü (^) ile (true ^ true = false) şeklinde özel durumlar yakalayabiliriz. Ternary (?:) ve null coalescing (??) operatörleri de ifadeleri kısaltmak ve kodu daha temiz hale getirmek adına kullanışlıdır. Bu arada operatör önceliği (örneğin & ile == arasındaki öncelik farkı) ifadelerin nasıl değerlendirildiğini yakından etkiler ve koşullarda beklenmeyen sonuçlar doğurabilir.
Karar Yapıları ve Koşullar
if, else if blokları ve tek satırlık koşul yapıları kodun mantığını ifade etmek için temel oluşturur. Sorularda gördüğümüz gibi koşulları doğru sırada yazmak, koşul değerlendirme önceliklerini kavramak ve artırma/azaltma operatörlerinin (++, --) etkilerini hesaba katmak, bu yapıları hatasız kullanmaya yardımcı olur. Örneğin if(true ^ true) ifadesi false sonuç verdiği için ilk blok çalışmayıp else bloğuna geçilmesi gibi durumlar, mantıksal operatörlerin kullanımını iyi kavramakla ilgilidir.
Değişken Bildirimleri ve const, var, dynamic, object
Sorularda, C#’ta değişken bildirimini ve const anahtar kelimesini de içeren örneklerle karşılaştık. const ile tanımlanan bir değerin, tanımlandığı anda mutlaka başlatılması gerekir. Örneğin const string dil = "C#"; gibi doğru bir kullanım varken const string fakulte; deyip sonradan değer atamak derleme hatasına yol açar. Ayrıca var anahtar sözcüğüyle tür çıkarımı, dynamic türüyle çalışma zamanında tür denetimi ve object veri türüyle ilgili kurallar da önemlidir. var ile tanımlanan bir değişken, ilk atanan değerin tipiyle sabitlenir ve daha sonra farklı türde bir değer atanamaz. dynamic ise tam tersi biçimde davranır ve çalışma zamanında oluşan hatalara daha açıktır.
String Kullanımı ve Formatlama
Bir diğer önemli kısım da dize (string) işlemleri ve formatlama yöntemleridir. Console.Write veya Console.WriteLine içerisinde "{0} {1}" gibi kalıplar kullanarak sıralı parametre yerleştirmek C#’ta yaygın bir yaklaşımdır. Bu sorularda, Console.Write("{0} - {2} - {1}", ...) gibi örnekler verildi ve parametre indekslerinin doğru eşleştirilmesi gerektiği, aksi halde beklenmeyen sıralar oluşabileceği vurgulandı.
Derleyici ve Çalışma Zamanı Hataları
C# dilinde kodun derlenmeden önce syntax (sözdizimi) hataları veya kullanılmamış değişken ataması gibi durumlar söz konusu olabilir. Sorulardan birinde, double değişkenine değer atanmadan önce yazdırma denendiği için “derleme hatası” çıkabileceğinden bahsedildi. Bu, yerel değişkenlerin varsayılan bir başlangıç değeri olmadığı için derleyicinin atama yapılmadan kullanımına izin vermemesinden kaynaklanır. Öte yandan çalışma zamanı (runtime) hataları tip dönüşümünün başarısız olması veya bölme sıfıra bölme gibi durumlarda ortaya çıkar. Tüm bunlar, C# dilinin temellerini kavramak açısından çok önemlidir. Veri türleri, operatörler, koşul yapıları ve string formatlama gibi mekanizmalar, her seviyedeki geliştiricinin hakim olması gereken yapı taşlarıdır. Özellikle operatör önceliği ve tip dönüşümleri gibi konulara dikkat ederek temiz ve hatasız kod yazmak mümkündür.
C# Programlama 2023-2024 Vize Soruları
C# Programlama 2023-2024 Vize Soruları