Şimdi Ara

C# kodu tercüme edemedim

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
223
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • bu c# 6 ile yeni property syntax yapılarını inceliyordum. karşıma şöyle bir kod çıktı. lakin tercüme edemedim


    public string Config { get; } = string.IsNullOrWhiteSpace( 
    string connectionString =
    (string)Properties.Settings.Default.Context?["niconnectionString"])?
    connectionString : "<none>";


    burada get ile property nin alacağı default değeri belirtiyoruz.

    ama anlamadığım, IsNullOrWhiteSpace metodu true ve fals çeviriyor.

    lakin fonksiyon içinde connectionstring adında string bir veri tipi belirtiyouz ve programın properties sınıfından context değerine ulaşırken string e cast ediyoruz. lakin soru işaretleri ne anlayamadım ? javadaki gibi ?: operatörleri mi? ayrıca fonksiyon true ve false alırken neden ısrarla string değer çeviriyoruz ?



    < Bu mesaj bu kişi tarafından değiştirildi uniquebison -- 30 Ekim 2016; 5:40:55 >



  • connectionstring string değer olmalıdır. Bu yüzden stringe çevriliyor.

    burada eğer gelen değer boş değilse string tipinde bir değer oluşturuyor(isnullorwhitespace)

    ? ise yerine göre boşluk, yerine göre if else ile aynı işleve sahiptir.

    Kolay gelsin.
  • Config property'sini initialize ediyor. yani değerini veriyor.

    string.IsNullOrWhiteSpace() kısmı, içerisindeki string null veya sadece boşluklardan mı oluşuyor diye bakıyor. hemen dışındaki
    ? connectionString : "<none>";
    kısmı ise if/else ile aynı. doğruysa connectionString, yanlışsa (:) "<none>" sabit stringine eşitliyor. yani Config'in değeri bu ikisinden biri oluyor.

    string.IsNullOrWhiteSpace(
    string connectionString = (string)Properties.Settings.Default.Context?["niconnectionString"])
    kısmında bir yanlışlık var yalnız. IsNullOrWhiteSpace( içinde değişken tanımlamış. orası hatalı olması lazım. başka bir string değişkeni geçirilmeli oraya. bir de "değer boş değilse <none> olsun" demiş. orasının tam tersi olması laızm
    onun dışında Context?[""] kısmında, Context null değilse [""] değerine ulaşıyor. yani null check operatörü. eğer soldaki null ise değer null oluyor exception fırlatmasını engellemek için.

    doğru kod şu şekilde yani:

     
    private string connectionString = (string)Properties.Settings.Default.Context?["niconnectionString"];
    public string Config { get; } = !string.IsNullOrWhiteSpace(connectionString) ? connectionString : "<none>"; // null veya boş değilse connectionString. null/boş ise <none>



    < Bu mesaj bu kişi tarafından değiştirildi VatandA.Ş. -- 30 Ekim 2016; 15:56:57 >




  • If else in kisaltmasi bu ternary operator dur. If else yapmazsin boylece.
  • Yapay Zeka’dan İlgili Konular
    C++ Kaynak Kod
    4 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.