/ / Ako zlepšiť výkon pre podmienku "alebo" v C # - c #

Ako zlepšiť výkon pre stav "alebo" v C # - c #

Mám vyhlásenie

 DateTime start = Convert.ToDateTime(assign.Start.ToString("MM/dd/yyyy"));
DateTime finish = Convert.ToDateTime(assign.Finish.ToString("MM/dd/yyyy"));
DateTime pic1 = Convert.ToDateTime(re.timepicker1().ToString("MM/dd/yyyy"));
DateTime pic2 = Convert.ToDateTime(re.timepicker2().ToString("MM/dd/yyyy"));
if (start == pic1 || start < pic1 && finish >= pic1  || start > pic1 && finish <= pic2 || start > pic1 && start < pic2)

Takže, ako zvýšiť výkonnosť? Teraz to beží pomaly.

odpovede:

0 pre odpoveď č. 1

Konverzia reťazca na datetime je pomernenáročná úloha, mali by ste to urobiť len vtedy, keď je to potrebné. Tiež, keď viete, že budete vyžadovať rovnaké hodnoty DateTime, uložte výsledky predchádzajúcich konvertií a použite ich neskôr, takže nebudete musieť konvertovať hodnoty znova.

Vo vašom kóde máte hodnoty DateTime, potom ich konvertujete na reťazec a potom ich konvertujete späť na DateTime. Prečo nie porovnať pôvodné hodnoty DareTime?

Ak chcete použiť iba informácie o dátume a preskočiť čas, vlastnosť Dátum je tu pre vás:

var dateTimeNow = DateTime.Now;
var dateToday = datetimeNow.Date;

Porovnajte hodnoty z vlastnosti .Date, potom nebudete potrebovať žiadne reťazové konverzie.