2009-10-08 9 views
6

vs ben tam bir biçimi ile, DateTime ayrıştırmak çalışıyorum istemci girişten kabul edilmeden. tek ElbetteDateTimeFormatInfo.InvariantInfo CultureInfo.InvariantCulture

bool success = DateTime.TryParseExact(value, "dd-MMM-yyyy", 
    DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None, out dateTime); 

VEYA

bool success = DateTime.TryParseExact(value, "dd-MMM-yyyy", 
    CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime); 

iyidir

, bu kod tarih ayrıştırma gerekli olduğu her yerde çağrılan bir ortak statik yöntemi içinde.

cevap

7

, üçüncü argüman olarak bir IFormatProvider sürer. Her iki DateTimeFormatInfo.InvariantInfo ve CultureInfo.InvariantCulture bu arabirimi uygular, böylece her iki durumda da aynı yöntemi DateTime numaralı telefondan aramış olursunuz.

Dahili olarak, CultureInfo.InvariantCulture kullanırsanız, DateTimeFormat özelliği, DateTimeFormatInfo örneğini almak için çağrılır. DateTimeFormatInfo.InvariantInfo kullanırsanız, bu doğrudan kullanılır. daha az talimatları gerçekleştirmek için olduğu gibi DateTimeFormatInfo çağrı hafifçe hızlı olacak, ama (neredeyse) tüm durumlarda hiçbir fark yaratmak için bu yüzden marjinal olacaktır.

iki yaklaşım arasındaki temel fark, sözdizimi. En net olanı kullanın.

3

Onlar aynı sonuçları verecektir.
Ve performansta herhangi bir farklılık olması ihtimali çok düşük.

Yani en okunabilir olduğunu düşünüyorum ne olursa olsun kullanın. Seçimim, noktaya biraz daha fazla olduğu için DateTimeFormatInfo.InvariantInfo olacaktır. Eğer DateTime.TryParseExact için imza bakarsak

İlgili konular