Ключевое слово let
- это объявление констант, которые нельзя изменить. Если вы хотите изменить переменную, вы должны использовать var
вместо этого, например:
var animals = ["cats", "dogs", "chimps", "moose"]
animals.remove(at: 2) //["cats", "dogs", "moose"]
Альтернатива без мутаций, которая сохранит исходную коллекцию без изменений, заключается в использовании filter
для создания новой коллекции без элементов, которые вы хотите удалить, например:
let pets = animals.filter { $0 != "chimps" }
Использование TypeConverter:
Font font = new Font("Arial", 12, GraphicsUnit.Pixel);
TypeConverter converter = TypeDescriptor.GetConverter(typeof (Font));
string fontStr = converter.ConvertToInvariantString(font);
Font font2 = (Font) converter.ConvertFromString(fontStr);
Console.WriteLine(font.Name == font2.Name); // prints True
Если Вы хотите использовать сериализацию XML, можно создать обертку Класса шрифта, которая сохранит некоторое подмножество Свойств шрифта.
Отметьте (Gishu) - Никогда не получают доступ к конвертеру типов непосредственно. Вместо этого получите доступ к соответствующему преобразователю при помощи TypeDescriptor. Очень важный :)
В проекте я продолжаю работать, я пошел с несколькими свойствами.
Я сохраняю шрифт к таблице базы данных, вспыхивая ее имя, размер, стиль и единица и затем сохраняю те значения.
При воссоздании шрифта по требованию, после того как эти значения являются retrived, снимок.
В каком хранилище данных необходимо сохранить это? Если это - просто пользовательские настройки, которые могут быть сохранены в файле, Вы могли сериализировать объект шрифта в файл настроек или в двоичном файле или в xml (если Вы хотите смочь отредактировать файл конфигурации непосредственно). Пространства имен сериализации (Система. Xml. Сериализация и Система. Время выполнения. Сериализация), обеспечивают все инструменты, чтобы сделать это, не пишущий пользовательский код.
Сайт MSDN на сериализации XML: сериализация XML в.Net Framework
[РЕДАКТИРОВАНИЕ] Так aparrently объект шрифта не является сериализуемым. ой :( Извините.