![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| stron |
|
|||
![]() Консультант ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1654 Регистрация: 17.7.2003 Где: Питер Репутация: 4 Всего: 36 |
А как писать в файл свои типы?
Напр., у меня тип состоит из нескольких статических массивов. -------------------- подписи нет |
|||
|
||||
| Kurt |
|
||||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 20 Всего: 36 |
Хм.. Уж не сериализация ли тебе нужна?
Если, так то ниже следует пример как это все использовать. Пример готов к компиляции. Существет два "способа" сериализации (в кавычках, т.к. речь идет о формате записи..) - в двоичном формате и формате SOAP. Можно реализовать свой формат, но, ИМХО, и этого хватает. В общем, что в примере: Я создал свой класс (MyClass), к-й и буду писать в файл. Это мой тип. Там я определил пару полей, показал private, public и массив (строки). В принципе, без разницы, что за поля/методы у класса. Надеюсь, код получился вполне читаемый:
Все. Похоже? Или не то спрашивал?.. P.S. Если некоторые поля в классе константы, то их можно не сериализовать - зачем файл увеличивать? Для этого перед таким полем ставим:
Это сообщение отредактировал(а) Kurt - 24.4.2004, 02:36 -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
||||
|
|||||
| stron |
|
||||
![]() Консультант ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1654 Регистрация: 17.7.2003 Где: Питер Репутация: 4 Всего: 36 |
Спасибо за помощь.
Реализовал так:
-------------------- подписи нет |
||||
|
|||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 20 Всего: 36 |
Без проблем.
Всегда рад. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| medos |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 20.12.2005 Репутация: нет Всего: нет |
У меня похожая задача, что и у строн, только мне надо сохранить не объект, а массив объектов (двумерный). Подскажите пожалуйста как. |
||||||
|
|||||||
| Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: 9 Всего: 62 |
medos
Просто добавляешь в класс Mytype свой массив. Например двумерный массив типа int задаётся так:
|
|||
|
||||
| medos |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 20.12.2005 Репутация: нет Всего: нет |
Дело в том, что каждый элемент массива представляет собой не число, а отдельный объект, над которым будут выполняться действия по ходу работы программы.
Можно конечно записать массив в класс, но непонятно как после этого работать с этим массивом? Или все-таки как-нибудь можно выполнить сериализацию этих объектов по отдельности? |
|||
|
||||
| Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: 9 Всего: 62 |
medos
Точно также можно включить и массив объектов, только они должны поддерживать сериализацию, т.е. наследовать интерфейс ISerializable. |
|||
|
||||
| medos |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 20.12.2005 Репутация: нет Всего: нет |
Имеется клас A, в классе имеется переменная b типа int, и массив c[n] типа int. Cвойства для переменной b легко установить с помощью методов set и get. Тогда к переменной b можно будет обращаться так:
а.b Но как сделать так, чтобы обращаться к массиву с в виде а.с[i]? |
|||
|
||||
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
Насколько я понял... речь идёт об этом:
Эээ... Вариант 1 (для умных): Создать объект типа А. A a = new A(); a.c[0] = 1; Вариант 2 (для очень умных): Переделать public поле в static. Только я вот не помню, статические поля тоже сериализуются? -------------------- 3 ГОДА НА |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |