Задать вопрос
@Lepeshka

Как хранить текстовые данные в приложении на C#?

Пишу программу на c# (win forms). В программе у меня есть класс и мне нужно хранить некоторое количество (не больше сотни) строк, которые используются в этом классе. Как это лучше реализовать? Внешние ресурсы не подходят - нужно, чтобы был только экзешник и всё. Ресурсы формы не подходят, потому что данные относятся к классу, а не к форме и вызывать из класса Properties.Resources - плохая идея. Должна быть возможность потом (вдруг понадобится) использовать класс отдельно от формы (напимер в dll) без таскания откуда-то этих данных. То есть всё должно быть компактно. Данные не изменяются.
Вопрос возник потому, что хранить строковыми константами прямо в классе или в коде методов - как то не красиво что ли, вот я и решил поинтересоваться, может есть какой-то красивый способ, чтобы не писать прямо в классе кучу констант. Может правильнее сделать рядом другой класс с данными или прямо внутри класса какую-то структуру. Что посоветуете?
  • Вопрос задан
  • 481 просмотр
Подписаться 1 Простой 2 комментария
Решения вопроса 1
VoidVolker
@VoidVolker Куратор тега C#
Dark side eye. А у нас печеньки! А у вас?
Например:
class MyClass
{
    ...
    static class Strings
    {
        public static string str1 = "string 1";
    }
}

Или просто вынести в отдельный файл.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@John_Nash
coder
Должна быть возможность потом (вдруг понадобится) использовать класс отдельно от формы (напимер в dll) без таскания откуда-то этих данных

Форму тащить в dll не обязательно, ресурсы прекрасно живут и без нее
ЗЫ: более того, по умолчанию любая сборка net содержит в себе информацию о версии файла, а хранится эта информация в ресурсах
Ответ написан
adressmoeistranici
@adressmoeistranici
Делатель
может помочь статический конструктор для инициализации статических полей в том же классе где и функционал
статические методы замены строк если требуется

class Base 
{
private int field1;
...
...
#region Strings
private static string string1;
private static string string2;
private static string string3;
#region Group1
private static string string4;
private static string string5;
private static string string6;
#endregion
#endregion
static Base()
{
string1 = "string1";
string2 = "string2";
string3 = "string3";
//group1
string4 = "string4";
string5 = "string5";
string6 = "string6";
}

#endregion
public Base() { }
...
}

и можно рассматривать производительность readonly static string
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы