Как определить текст, который не изменится в C # - 4.0 - Лучшая производительность - Поддержка 2 языков - АС - PullRequest
0 голосов
/ 09 сентября 2011

Я поддерживаю два разных языка в моем веб-приложении. Так что у меня есть 2 разные строки для всего. Я спрашиваю, что является лучшим способом определения статических текстов. Я имею в виду, есть ли разница в производительности между этими четырьмя примерами или каким-то другим способом?

static private string srLang1 = "Username";
private string srLang2 = "Username";
static string srLang3 = "Username";
string srLang4 = "Username";
const string srLang5="Username";
private const string srLang6 = "Username";

Ответы [ 5 ]

4 голосов
/ 09 сентября 2011

Я не вижу проблем с производительностью, связанных с декларациями.

Лучшим способом предоставления различного текста для разных языков была бы глобализация вашего приложения с использованием ресурсов.для ASP.NET

По существу вы определяете строки и другие локализуемые элементы, такие как изображения, в Ресурсах.Затем вы можете ссылаться на ресурсы из вашего исходного кода.

1 голос
/ 09 сентября 2011

В этой более ранней статье немного говорится об измерении производительности на статических и нестатических. Что касается частного и не частного, все, что я знаю, говорит, что это не должно иметь никакого значения, но компиляторы иногда делают забавные вещи.

Лучший ответ для вас - измерить различия в вашей программе, используя тестирование производительности. Столько, сколько мы можем говорить о теории, ничто не бьет холодные твердые данные.

1 голос
/ 09 сентября 2011

Вам определенно стоит взглянуть на серию статей MSDN по глобализации и локализации.В нем показано, как правильно поддерживать несколько языков на вашем сайте, не выполняя действия, описанные выше:

Глобализация и локализация ASP.NET

Начните со всехстатьи в разделе «Локализация веб-страниц ASP.NET с помощью ресурсов» и просто продолжайте работу.

1 голос
/ 09 сентября 2011

Полагаю, вы ищете файлы ресурсов и глобализацию. Ищите в Интернете или посмотрите ссылки, приведенные в этом вопросе.

Хотя я бы не рекомендовал ваш способ глобализации приложения лучший выбор с точки зрения производительности между вашими опциями - const string myString = "hello" (, обратите внимание, что нет разница между private type varName = something и type varName = something. В C # все члены по умолчанию неявно private, если не указан модификатор)

1 голос
/ 09 сентября 2011

private const string srLang6 = "Username"; кажется лучшим. Плагин ReSharper предложил бы этот путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...