2014-03-12 2 views
0

В моем приложении я определяю изменения сети по мере их возникновения. У меня есть пример кода, который я использовал, но я хотел бы, чтобы отформатировать полученную строку определенным образомКак форматировать строку

string change = string.Empty; 
     switch (e.NotificationType) 
     { 
      case NetworkNotificationType.InterfaceConnected: 
       change = "Connected to "; 
       break; 
      case NetworkNotificationType.InterfaceDisconnected: 
       change = "Disconnected from "; 
       break; 
      case NetworkNotificationType.CharacteristicUpdate: 
       change = "Characteristics changed for "; 
       break; 
      default: 
       change = "Unknown change with "; 
       break; 
     } 

     string changeInformation = String.Format(" {0} {1} {2} ({3})", 
        DateTime.Now.ToString(), change, e.NetworkInterface.InterfaceName, 
        e.NetworkInterface.InterfaceType.ToString()); 

     // We are making UI updates, so make sure these happen on the UI thread. 
     Dispatcher.BeginInvoke(() => 
     { 
      Changes.Add(changeInformation); //Changes contains the changeInformation 
     }); 

В настоящее время результат выглядит

enter image description here

, но это не отформатирован хорошо в все, и имеет тенденцию время от времени перебираться. Я хотел бы иметь возможность форматировать его так, чтобы DateTime.Now.ToString() находился в верхней строке, затем change на следующей строке, а затем e.NetworkInterface.InterfaceName и e.NetworkInterface.InterfaceType.ToString(). Как я могу это сделать?

+1

использовать разрывы строк ... (\ n помогает) – Vogel612

+1

'String.Format (" {0} \ n {1} \ n {2} ({3}) ", ...' –

ответ

1

Используйте либо явные \r\n, либо еще лучше, Environment.NewLine, например.

String.Format(" {0}{1}{2}{3}{4}({5})", 
       DateTime.Now, Environment.NewLine, 
       change, Environment.NewLine, 
       e.NetworkInterface.InterfaceName, 
       e.NetworkInterface.InterfaceType); 

Заметим также, что вам не нужно в параметрах голую .ToString() - это подразумевается в String.Format()

0

Я думаю, вы должны добавить новую строку

string changeInformation = String.Format(" {0} {1} {2} {3} ({4})", 
        DateTime.Now.ToString(), Environment.NewLine, change, e.NetworkInterface.InterfaceName, 
        e.NetworkInterface.InterfaceType.ToString()); 
Смежные вопросы