Kompilacja w czasie kompilacji C # dla stałych łańcuchowych

Czy C # optymalizuje czas kompilacji dla stałej konkatenacji ciągów? Jeśli tak, to w jaki sposób mój kod napisany, aby to wykorzystać?

Przykład: W jaki sposób są one porównywane w czasie wykonywania?

Console.WriteLine("ABC" + "DEF");

const string s1 = "ABC";
Console.WriteLine(s1 + "DEF");

const string s1 = "ABC";
const string s2 = s1 + "DEF";
Console.WriteLine(s2);

questionAnswers(2)

yourAnswerToTheQuestion