Есть ли причина использовать Environment.NewLine вместо \ n в коде XF для мобильного устройства iOS или Android? - PullRequest
0 голосов
/ 08 февраля 2020

Вот пример моего кода:

Shell.Current.DisplayAlert($"Stop Quiz {Settings.Quiz}",
       $"{Environment.NewLine}You tapped the {target} icon " +
       $"at the bottom of this page. The quiz will be stopped " +
       $"and you will be taken to the {target} screen." +
       $"{Environment.NewLine}{Environment.NewLine}" +
       $"Please confirm{Environment.NewLine}", 
       "OK", "Cancel") == true)

Что мне интересно, зачем использовать Environment.NewLine вместо backslash n

Ответы [ 4 ]

1 голос
/ 10 февраля 2020

Зависит от платформы. На Windows это фактически "\ r \ n".

Из MSDN:

Строка, содержащая "\ r \ n" для платформ, отличных от Unix, или строка, содержащая «\ n» для Unix платформ.

1 голос
/ 08 февраля 2020

С точки зрения приложения Xamarin Forms фактически нет разницы между Environment.NewLine и \n (и на самом деле многие интерпретаторы в windows преобразуют \n в \r\n автоматически).

Однако вот мои причины, по которым я предпочитаю Environment.NewLine:

  • Это показывает намерение. Конечно, вы можете написать \n, и каждый должен знать, что это означает перевод строки. Тем не менее, Environment.NewLine ясно показывает, что разработчик хочет, чтобы код делал, и он вернёт правильную реализацию для платформы, под которой он работает.
  • Это обеспечивает некоторую степень защиты будущего. Гипотетически, если. Net добавить поддержку операционной системы, которая использует символ другой для представления новой строки, то разработчику может потребоваться обновить весь существующий код для обработки этого случая. Если вместо этого использовать Environment.NewLine, то оно будет обработано правильно. Тем не менее, я думаю, что это очень маловероятный случай, но подумал, что стоит упомянуть.

Статья в Википедии о Newline содержит некоторую полезную информацию об истории (например, IBM использовала \025 для представления новой строки на его мэйнфреймах в соответствии со статьей).

1 голос
/ 08 февраля 2020

Environment.NewLine гарантирует, что вы используете обозначение платформы c для новой строки. Это может или не может быть полезно в зависимости от того, на какие платформы вы ориентируетесь. В случае, если вы нацелены только на iOS и Android, разницы нет.

1 голос
/ 08 февраля 2020

Environment.NewLine вернет \n для Unix систем и \r\n для Windows, что сделает вашу кодовую платформу независимой.

. Net Реализация ядра:

public static String NewLine {
    get {
        Contract.Ensures(Contract.Result() != null);
#if !PLATFORM_UNIX
        return "\r\n";
#else
        return "\n";
#endif // !PLATFORM_UNIX
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...