Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
C# ve Java'nın birçok benzerliği vardır. C# dilini öğrendikten sonra Java'da programlamadan edindiğiniz bilgilerin çoğunu uygulayabilirsiniz:
-
Benzer söz dizimi: Hem Java hem de C# C dil ailesindedir. Bu benzerlik, C# okuyabileceğiniz ve anlayabileceğiniz anlamına gelir. Bazı farklılıklar vardır, ancak söz diziminin çoğu Java ve C ile aynıdır. Küme ayraçları ve noktalı virgüller tanıdıktır. gibi
ifelseswitchdenetim deyimleri aynıdır. ,forvewhile...dodöngü deyimleriwhileaynıdır.classveinterfaceiçin aynı anahtar sözcükler her iki dilde de bulunmaktadır.publicileprivatearasındaki erişim değiştiricileri aynıdır. Yerleşik türlerin çoğu bile aynı anahtar sözcükleri kullanır:int,stringvedouble. - Nesne odaklı paradigma: Hem Java hem de C# nesne odaklı dillerdir. Polimorfizm, soyutlama ve kapsülleme kavramları her iki dilde de geçerlidir. Her ikisi de yeni yapılar ekledi, ancak temel özellikler hala geçerliliğini koruyor.
- Güçlü bir şekilde türlenen: Hem Java hem de C# güçlü türlenen dillerdir. Değişkenlerin veri türünü açık veya örtük olarak bildirirsiniz. Derleyici tür güvenliğini sağlar. Derleyici, kodu çalıştırmadan önce kodunuzda türle ilgili hataları yakalar.
- Platformlar arası: Hem Java hem de C# platformlar arasıdır. Geliştirme araçlarınızı en sevdiğiniz platformda çalıştırabilirsiniz. Uygulamanız birden çok platformda çalıştırılabilir. Geliştirme platformunuzun hedef platformunuzla eşleşmesi gerekmez.
-
Özel durum işleme: Hem Java hem de C# hataları göstermek için özel durumlar oluşturur. Her ikisi de özel durumları işlemek için blokları kullanır
try-catch-finally. Özel durum sınıfları benzer adlara ve devralma hiyerarşilerine sahiptir. Bir fark, C# öğesinin denetlenen özel durumlar kavramına sahip olmamasıdır. Teorik olarak, herhangi bir yöntem herhangi bir istisna fırlatabilir. - Standart kitaplıklar: .NET çalışma zamanı ve Java Standart Kitaplığı (JSL) ortak görevler için destek içerir. Her ikisi de diğer açık kaynak paketleri için kapsamlı ekosistemlere sahiptir. C# dilinde paket yöneticisi NuGet'tir. Maven'a benzer.
-
Çöp Toplama: Her iki dil de çöp toplama aracılığıyla otomatik bellek yönetimi sağlar. Çalışma zamanı, başvurulmayan nesnelerden belleği geri alır. C#'nin,
structtürleri olarak değer türleri oluşturmanıza olanak tanımasıdır.
Benzerlikler nedeniyle C# dilinde neredeyse hemen üretken bir şekilde çalışabilirsiniz. İlerledikçe C# dilinde Java'da bulunmayan özellikleri ve deyimleri öğrenmeniz gerekir:
-
Desen eşleştirme: Desen eşleştirme, karmaşık veri yapılarının şekline göre kısa koşullu deyimleri ve ifadeleri etkinleştirir.
isdeyimi, bir değişkenin bir desen "olup olmadığını" kontrol eder. Desen tabanlıswitchifade , bir değişkeni incelemek ve özelliklerine göre kararlar almak için zengin bir söz dizimi sağlar. - Dize ilişkilendirmesi ve ham dize değişmez değerleri: Dize ilişkilendirmesi, konumsal tanımlayıcıları kullanmak yerine bir dizeye değerlendirilen ifadeler eklemenize olanak tanır. Ham dize değişmezleri, metin içindeki kaçış dizilerini azaltmanın bir yolunu sunar.
-
Boş değer atanabilir ve atanamaz türler: C#, bir türe eki ekleyerek null atanabilir değer türlerini ve
?destekler. Nullable türler için, ifadenin başvurusunu kaldırmadan öncenullkontrol etmezseniz, derleyici sizi uyarır. Null değer atanamayan türler için, bu değişkene birnulldeğer atayabilecekseniz derleyici sizi uyarır. Null atanamayan başvuru türleri, bir System.NullReferenceException atılmasına neden olan programlama hatalarını en aza indirir. - Uzantılar: C# dilinde, bir sınıfı veya arabirimi genişleten üyeler oluşturabilirsiniz. Uzantılar, bir kitaplıktaki bir tür veya belirli bir arabirimi uygulayan tüm türler için yeni davranışlar sağlar.
- LINQ: Dil tümleşik sorgusu (LINQ), depolama alanına bakılmaksızın verileri sorgulamak ve dönüştürmek için ortak bir söz dizimi sağlar.
- Yerel işlevler: C# dilinde, işlevleri yöntemlerin veya diğer yerel işlevlerin içine yerleştirebilirsiniz. Yerel işlevler bir kez daha bir kapsülleme katmanı sağlar.
C# dilinde Java'da olmayan başka özellikler de vardır. Sıralı söz diziminde, async ve await, zaman uyumsuz işlemleri modelleyen özelliklerdir.
using deyimi, bellek dışı kaynakları otomatik olarak boşaltır.
C# ile Java arasında küçük ama önemli farklılıklara sahip benzer özellikler de vardır:
-
Özellikler ve Dizin Oluşturucular: Hem özellikler hem de dizin oluşturucular (bir sınıfı dizi veya sözlük gibi ele alır) dil desteğine sahiptir. Java'da
getvesetile başlayan yöntemler için adlandırma kuralları vardır. -
Kayıtlar: C# dilinde kayıtlar (başvuru) veya
class(değer) türleri olabilirstruct. C# kayıtları sabit olabilir, ancak sabit olması gerekmez. - Demetlerin C# ve Java'da farklı söz dizimi vardır.
- Öznitelikler Java ek açıklamalarına benzer.
Son olarak, C# dilinde bulunmayan Java dil özellikleri vardır:
- denetlenen özel durumlar: C# dilinde herhangi bir yöntem teorik olarak herhangi bir özel durum oluşturabiliyor.
- denetlenen dizi kovaryansı: C# dilinde diziler güvenli bir şekilde birlikte değişken değildir. Ortak değişken yapılara ihtiyacınız varsa genel koleksiyon sınıflarını ve arabirimlerini kullanmanız gerekir.
Genel olarak Java'da deneyimli bir geliştirici için C# öğrenmek sorunsuz olmalıdır. C# yeni deyimleri öğrenirken üretken olmanız için yeterli tanıdık deyime sahiptir.