Yorum satırları ve nullable değişkenler

Selamlar efenim gene ben.

Öncelikle  yorum satırlarından başlayalım ve sonrasında nullable ile konuyu kapatalım.

Yorum satırları program derleyicileri tarafından derlenmez çoğu programlama dillerinde yazılış şekilleri aynıdır yani bizim kodumuz üzerinde herhangi bir etkisi olmaz siz yorum satırı içerisinde istediğiniz şeyi yazabilirsiniz.

Genelde kullanım amaçları yazmış olduğunuz değişkenlerin, fonksiyonların, classların, parametrelerin ne anlama geldiğini belirtmek amaçlıdır. Peki kime?

Tabiki size veya sizden sonra o kodu kim geliştirecek ise o kişiye.

Siz 6 ay sonra yazdığınız koda bakıp her şeyi hatırlayamazsınız.

Şuan döngüleri anlatmadım fakat onun da zamanı gelecek aşağıdaki kod sadece 1 ile 100 arasındaki çift sayıları ekrana yazdırır bunu kodu okuyarak öğrenmek var veya tek bir satır yorum satırını okuyarak öğrenmek var.

Gördüğünüz gibi tek satırlık bir yorum satırı yazarken 2 adet / karakteri ekliyoruz ve sonrasında da yorum satırımızı yazıyoruz.

Eğer sizin  yorum satırınız çok uzunsa  ve siz tek satırda yazmak istemiyorsanız /* ifadesi ile yorum satırlarını başlatır */ ifadesi ile yorum satırını bitirirsiniz.

Örnek;

Gördüğünüz gibi 3 ila 8 arası yorum satırıdır.

!Lütfen dikkat edin yorum satırları arasında Ekrana mesaj yazdırdım fakat o mesajı ekranda göremezsiniz. Neden peki ? Aslında açıkladık zaten yorum satırları derlenip çalıştırılmaz sadece daha sonrasında hatırlatma amaçlı kaynak kod üzerinde bulunur.

Peki nullable nedir?

Nullable’ın ne olduğunu bilmek için önce null nedir onu bilmek lazım.

Siz bir değişken tanımladığınızda tanımladığınız değişken ram üzerindeki bir adrese işaret eder. Eğer siz bir değişkeni null olarak işaretlerseniz bellekte bir adrese işaret etmediğini belirtirsiniz null değişkenleri oluşturmak için string test=null; diyebilirsiniz null özel bir ifadedir ekrana Console.WriteLine(test); yazdırdığınız takdirde null yazdırmaz hatta program build edilirken hata alırsınız çünkü programınız ekrana ne yazdıracağını bilmiyor.

Değişkenleri şöyle düşünebilirsiniz siz bir değişken tanımladığında bellek üzerinde yer kaplarlar ve bellek üzerinde kapladıkları yerin adresleri onların tanımlamaları esnasında yapılır siz bir değişkeni ekrana yazdırmak istediğinizde o adrese gidip değerini bulur ve ekrana yazdırır.

null kullanımı şu şekildedir.

Fakat burda şöyle bir durum var zaten test’in altını neden çizdiğini biliyoruz biz bu değişkeni  kullanmadık ve bize uyarı veriyor peki null ifadesinin altı niye çizgili?

C# yeni özellikleriyle birlikte geldi ve artık bir değişkeni belirlerken null olabilme ihtimali olacağını belirtmeniz gerekiyor peki nasıl?

tanımlama esnasında değişken tipinden sonra ? eklerseniz bu o değişkenin nullable olduğu anlamına geliyor yani içerisine null atanabilir.

Tanımlaması bu şekildedir ve gördüğünüz gibi artık null değerinin altı çizili değil.

Bu özellik bizim csproj dosyamızın içinde etkin veya değil olarak kapanabilir

Kırmızı kutu ile işaretlediğim alandaki enable ifadesini disable yaparsanız artık string? diye yazmanıza gerek yok fakat null olabilecek nesneyi tanımlamamız ve bunu bilmemiz güzel bir özellik kapatmamanızı şiddetle öneririm. Kapanmış halinin denemesi de aşağıdaki gibidir.

Eğer disable yaparsak ? ifadesini eklememize gerek kalmaz.

Siz normalde csproj içerisinde disable olan nullable’ı bir dosya içerisinde aktif edebilirsiniz

proje dosyası içerisinde nullable özelliğim kapalı fakat dosyamın başına veya aktif olmasını istediğim esnada #nullable enable yazarsam artık nullable özelliğim aktif olur, ve o satırdan sonra aktif kalır.

Eğer belirli satırlar arasında yapmak isterseniz.

belirli bir işlem sonrasında dosya içerisinde tekrardan #nullable disable yaparsak disable olmuştur.

Eğer biz enable veya disable buna karar veremiyorsak projemizin orjinal ayarlarına  #nullable restore yaparak getirebiliriz.

Benim proje ayarlarımı zaten disable olarak işaretlediğimi söylemiştim test4 değişkeninden önce restore işlemi yaptım ve disable olarak işaretlendi.

Sonraki yazımda görüşmek üzere sağlıkla kalın.

erdincyasan Yazar:

0 0 votes
Değerlendirme
guest
0 Yorum
Inline Feedbacks
View all comments