Altbilgi içeriğine atla
Iron Academy Logo
C# ve .NET'te Yenilikler

Yeni field Anahtar Kelimesinin C# Özelliklerini Nasıl İyileştirdiği

[[academy-video-youtube({"vid": "_Z551_SKHA4", "start_time": "0", "title": "C# 14'te Yeni Field Anahtar Kelimesi Mülkleri 10 Dakika veya Daha Az Sürede Nasıl İyileştirir", "creator": "Tim Corey", "length": "10d 40s"})]]

C# özellikleri, bir sınıf içinde verilerin nasıl erişileceği ve korunacağını belirleyen temel unsurlardan biridir. Özel veri üyeleri ile genel erişim arasında yer alırlar ve geliştiricilerin değerlerin nasıl okunduğunu ve yazıldığını kontrol etmelerine olanak tanırlar. C# 14'te Yeni Field Anahtar Kelimesi Mülkleri 10 Dakikadan Kısa Sürede Nasıl İyileştiriyor adlı videosunda Tim Corey, C# 14'ün yeni field anahtar kelimesi ile mülklerde anlamlı bir iyileştirme sunduğunu açıklıyor.

Bu makalede, Tim'in video açıklamalarından adım adım geçerek C# içindeki özelliklere daha derin bir bakış atıyoruz. Tim'in açıklamaları pratik ve örnek odaklı olup, yeni anahtar kelimenin otomatik uygulanan özellikleri nasıl geliştirdiğini, doğrulamayı nasıl basitleştirdiğini ve geliştiricilerin zaten güvendiği kod yazımı değiştirmeden nasıl gereksiz kod kalıbını azalttığını gösteriyor. Buradaki amaç, Tim'in tam mantık ve gösterimlerini takip ederek C# özelliklerini daha iyi anlamaktır.

Overview of C# Properties and the Upgrade in C# 14

Tim, C# 14'te C# özelliklerine büyük bir yükseltme olduğunu açıklayarak başlıyor. Videonun odak noktasının, otomatik özelliklerin dahili çalışma şeklini etkileyen yeni field anahtar kelimesi olduğunu açıkça belirtiyor. Tim ayrıca C# 14'ün .NET 10 ve Visual Studio 2026 ile birlikte sunulduğunu, ancak özelliğin kendisinin daha önceki .NET sürümlerinde çalışabileceğini belirtiyor.

Videoyu, bu yeni özelliği gerçek kodda nasıl kullanırız? gibi belirli bir soruya cevap vermek üzere tasarlanmış, hızlı ve odaklanmış bir açıklama olarak sunar. Bu, bir mülk tanımının teorik tartışmasından ziyade, pratik bir rehberlik tonu oluşturur.

Person Sınıfı Örneği ve Otomatik Özellikler

Yaklaşık 0:23 civarında, Tim basit bir public class Person ile bir konsol uygulamasını tanıtıyor. Bu kişi sınıfı, aşağıdakiler de dahil olmak üzere çeşitli genel özellikler içerir:

  • public string FirstName

  • public string LastName

  • public int Age

Tim, bunların otomatik uygulanmış özellikler (otomatik olarak uygulanan özellikler olarak da adlandırılır) olduğunu açıklar. Derleyici, sahne arkasında otomatik olarak bir destekleyici alan oluşturduğu için görünür özel değişkenler veya özel alanlar yoktur.

Otomatik olarak uygulanmayan bir Demo özelliği de ekler. Bunun yerine, özel bir string yedek alanı (_) ve sadece bir get erişicisine sahip salt okunur bir özellik sunar. Bu zıtlık, videonun ilerleyen bölümlerinde önemli hale gelir.

Program.cs dosyasında Özellikleri Kullanma

Ardından, Tim 'Program' sınıfına geçer ve Person nesnesinin public static void main (veya kavramsal olarak static void main string args) içinde nasıl oluşturulduğunu gösterir. Yeni bir kişiyi şu şekilde oluşturur:

new Person { FirstName = "Tim", LastName = "Corey" }

Tim, özelliklerin özel veri üyelerini gizlerken sınıf dışından erişim sağladığını belirtiyor. O, soyadı, yaş ve demo gibi değerleri alır ve özelliklerin, aslında perde arkasında özel yöntemler olmalarına rağmen, erişildiğinde tıpkı alanlar gibi göründüğünü gösterir.

Otomatik Özelliklerde Geçersiz Değerler Sorunu

Yaklaşık 1:23'te Tim, kasıtlı olarak geçersiz bir değer atıyor:

person.LastName = null;

LastName gerekli ve null olamaz olarak işaretlenmemiş olmasına rağmen, atama yine de çalışırken sorunsuz çalışır. Tim, otomatik özelliklerin geçersiz değerlere karşı otomatik olarak koruma sağlamadığını açıklar. Derleyici sizi uyarır, ancak set methodu hala değeri kabul eder.

Bu, otomatik uygulanmış özelliklerin ana bir sorununu gösteriyor: kısa ve öz olmalarına rağmen, içeride bir doğrulama eklemek için yerleşik bir yol sağlamazlar. Geçersiz veriler içinden geçebilir ve sessizce varsayımları bozabilir.

Yedek Alanlı Geleneksel Tam Özellik

Yaklaşık 2:58 civarında, Tim geliştiricilerin önceki C# sürümlerinde ne yaptıklarını gösteriyor. LastName'i tam olarak uygulanan bir özelliğe dönüştürmek için kullanır:

  • Özel dizgi destek alanı

  • Özellik değerini kontrol eden bir set erişimcisi

Geçersiz değerler için bir istisna fırlatıldı

Bu yaklaşım, özellik erişimcileri üzerinde tam kontrol sağlar, ancak Tim bunun ne kadar detaylı hale geldiğine vurgu yapar. Özellik, artık otomatik özelliklerin tek satırlık sözdizimine kıyasla birkaç satır alıyor.

Ayrıca, bir otomatik özellikten tam özelliğe geçmenin mevcut kodu bozmadığını açıklar, çünkü özellik adı, erişim seviyesi ve dış kullanım aynı kalır.

Orta Yol Olarak Yeni field Anahtar Kelimesi

4:19'da Tim, C# 14'deki önemli iyileştirmeyi tanıtıyor. Tam bir özellik yazmak yerine, otomatik özellik yapısını koruyor ve yalnızca set erişimcisini field anahtar kelimesini kullanarak değiştiriyor.

Tim, bu alanın normalde gizli kalan derleyici tarafından üretilen özel bir alanı temsil ettiğini açıklar. field = value atayarak, geliştiriciler artık kendi özel değişkenlerini bildirmeden özellik değerini kesip doğrulayabilirler.

Bu, geliştiricilerin alışık olduğu aynı söz dizimini korurken esneklik ekler. Tim, doğrulama mantığını mümkün kılarken kodu azalttığını, bu yapının otomatik özellikler ile tam özellikler arasında yer aldığını vurguluyor.

Kapsamlı Destek Alanları ve Özellik İzolasyonu

Tim, alan anahtar kelimesinin göründüğü özelliğe kapsamlandığını açıklar. Her özellik kendi yedek alanına sahip olur ve çapraz özellik girişimi riski yoktur.

Aynı sözdizimi başka bir özellikte - örneğin, FirstName - kullanılırsa, o özelliğin kendine ait destek alanına atıfta bulunur. Bu, özelliği öngörülebilir ve birden çok genel özellik üzerinde kullanımı güvenli hale getirir.

Yaş Gibi Sayısal Özellikleri Doğrulama

Yaklaşık 6:16'da, Tim aynı yaklaşımı bir public int Age özelliğine uygular. Geçersiz bir negatif değer atar ve bunun neden izin verilmemesi gerektiğini açıklar.

Bir istisna fırlatmak yerine, Tim farklı bir strateji gösteriyor: geçersiz değerleri görmezden gelmek. Set metodu, değeri alana atamadan önce geçerli bir aralıkta olup olmadığını kontrol eder.

Bu, yeni yaklaşımın özel int yaş, sayısal doğrulama ve koşullu mantık için eşit derecede iyi çalıştığını gösterir—özelliği tam bir uygulamaya dönüştürmeden.

field Anahtar Kelimesi ile İsim Çakışmaları

Tim daha sonra potansiyel bir sıra dışı durum olan adlandırma uyuşmazlıklarını tartışır. Bir sınıf zaten field adlı bir değişken içeriyorsa, bu durum özellikler içinde kullanılan yeni anahtar kelime ile çakışabilir.

O, bunun karışıklığa ve beklenmedik davranışlara nasıl yol açtığını gösterir. Tim, çözümün değişkeni açıkça bu.field veya @field kullanarak referanslamak olduğunu açıklar. Bu, değişken adını destekleyen alan anahtar kelimesinden ayırır.

Tim, mevcut kod tabanlarını yükseltirken, özellikle böyle değişkenleri yeniden adlandırmanın iyi bir uygulama olduğunu şiddetle tavsiye eder.

Ad Çakışmalarının Geçerli Olmadığı Yerler

Tim, alan anahtar kelimesinin yalnızca özellik erişimcileri içinde özel bir anlam taşıdığını açıklar. Yapıcılar, yöntemler veya sınıfın diğer kısımlarında alan, normal bir değişken gibi davranır.

Bu ayrım, geliştiricilerin derleyici tarafından oluşturulan destekleme alanının ne zaman var olduğunu ve ne zaman olmadığını anlamalarına yardımcı olur.

Tim Corey'den Son Düşünceler

Tim, videosunu C#'ta yeni alan anahtar kelimesinin nasıl çalıştığını ve neden özellikleri iyileştirdiğini özetleyerek sona erdirir. Bu, geliştiricilerin doğrulama, kontrol ve netlik eklerken otomatik özellikleri kullanmaya devam etmelerini sağlar.

İzleyicileri özelliği denemeye, kendi kodlama tarzlarına nasıl uyduğunu keşfetmeye ve adlandırma kuralları hakkında dikkatlice düşünmeye teşvik eder. Tim, videoyu bu değişikliğin gereksiz karmaşıklık eklemeden özellikleri daha ifadeli hale getirdiğini pekiştirerek kapatır.

Hero Worlddot related to Yeni field Anahtar Kelimesinin C# Özelliklerini Nasıl İyileştirdiği
Hero Affiliate related to Yeni field Anahtar Kelimesinin C# Özelliklerini Nasıl İyileştirdiği

Sevdiğiniz Şeyleri Paylaşarak Daha Fazla Kazanın

.NET, C#, Java, Python veya Node.js ile çalışan geliştiriciler için içerik oluşturuyor musunuz? Uzmanlığınızı ek gelire dönüştürün!

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara