nie mogę uwierzyć wszystkich tych odpowiedzi i nikt nie wspomniał o tym, aby zmienić swój kod
clntMailBody = clntMailBody + "Order Total: " + String.Format("{0:C}", strOrderTotal) + "\n";
i zobaczyć, czy to rozwiąże problem, jednak lepszy sposób to zrobić byłoby
clntMailBody = String.Format("{0}Order Total: {1:C}\n", clntMailBody, strOrderTotal);
jest znacznie łatwiej zobaczyć, co się dzieje i usuwa wiele twoich konkatenacji ciągów.
Jeżeli jesteś gotów zrobić kilka ponowne napisanie nawet lepszym rozwiązaniem jest: (zrobiłem jakąś logikę się pokazać mój przykład)
StringBuilder clntMailBody = new StringBuilder();
clntMailBody.AppendLine("Some Fixed body Text")
foreach(string lineItem in Invoice)
{
clntMailBody.AppendLine(lineItem);
}
clntMailBody.AppendFormat("Order Total {0:C}", strOrderTotal).AppendLine();
return clntMailBody.ToString();
Ponieważ formatujesz ciąg znaków. Nawet jeśli 'strOrderTotal' ma wartość' decimal', twoje '+" \ n "' zmusza je do 'string'. – dasblinkenlight
Tak, wszystko było w porządku. Dzięki wielkie! – Kolten