Giriş dizesi doğru biçimde değildi hatasının çözümü nedir?

0

C#  string.format metodunu parametre ile kullandığımda Giriş dizesi doğru biçimde değildi hatası alıyorum. Hatanın tamamı şu şekilde:

Giriş dizesi doğru biçimde değildi.

Açıklama: Geçerli web isteği yürütülürken işlenmemiş özel durum oluştu. Lütfen hata ve kod içinde kaynaklandığı yer hakkında daha fazla bilgi almak için yığın izlemesini gözden geçirin. 

Özel Durum Ayrıntıları: System.FormatException: Giriş dizesi doğru biçimde değildi.

C# Giriş dizesi doğru biçimde değildi hatasının çözümü nedir?

alattin alattin (17125)
6 yıl önce sordu

    Toplam 1 Cevap


    0

    Giriş dizesi doğru biçimde değildi hatasının çözümü nedir?

    Öncelikle belirteyim Giriş dizesi doğru biçimde değildi hatası pek çok farklı şekilde karşınıza çıkar. Ben aşağıda string.format metodu ve parametre kulllanırken yapılan hata üzerine karşılaşılan Giriş dizesi doğru biçimde değildi hata mesajını açıklamaya çalıştım.

    C# string.format metodu çok kullanışlı bir metoddur. Metinleri formatlamak için kullanılabildiği gibi metinler içine parametreler gömerek bu parametrelere değer atayabilirsiniz.  Böylece + gibi string birleştirme operatörleri ile göze hoş gelmeyen kodlar yazmak yerine daha düzgün kod yazılabilir.

    String.Format kullanırken eğer string içinde belirtilen parametrelerden bir veya bir kaçına değer atanmazsa Giriş dizesi doğru biçimde değildi hatası alınır.

    Örneğin aşağıdaki gibi bir ifademiz olsun:

     string mesaj = "{0} sitesine hoş geldiniz:{1}";

    Burada metin içine iki tane parametre tanımlanmıştır. Bunlara değer atamak için şu kod kullanılmalıdır:

    string.Format(mesaj, "uzmanim.net", "alattin");

    Bunun çıktısı şu şekilde olacaktır:

    uzmanim.net sitesine hoş geldiniz:alattin

    Eğer string içinde {} karakterleri düzgün biçimde kullanılmazsa, örneğin kod şu şekilde yazılırsa:

     string mesaj = "{0} sitesine hoş {} geldiniz:{1}";

    Giriş dizesi doğru biçimde değildi  hatası ile karşılaşılır. Çünkü string ifadesi içinde özel karakter olan süslü parantez doğru şekilde kullanılmadı.

    Bu genelde Javascript kodu gibi kodları C# tarafında işlerken karşınıza çıkabilecek bir durum.  Örneğin aşağıda kısaltılmış bir kod var. Burada  push metodu içindeki {} gözden kaçarsa bu kod hata verecektir.

     string adDesktop = "<script async ..... window.adsbygoogle || []).push({});</script>";

    Hatadan kaçınmak için varsa string ifadesinizin içindeki { ve } karakterlerini çift yazmalısınız. Aşağıdaki örnekte olduğu gibi

     string adDesktop = "<script async ..... window.adsbygoogle || []).push({{}});</script>";

    Karmaşık kodlar üzerinde özellikle HTML, Javascript kodları üzerinde işlem yapıyorsanız kodunuzun içinde parametre yapısını bozacak,  derleyicinin yanlış anlamasına sebep olacak { ve } karakterlerini çiftleyerek yazmalısınız.

    alattin alattin (17125)
    6 yıl önce cevaplandı

      üyelik gerektirir

      Cevap yazabilmek için üye girişi yapmalısınız.

      Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
      uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol