![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
V0fka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Привет!
Есть статический класс.
И несколько вопросов: 1) в строке, которую я выделил коментом пяовляется ошибка, что писать this нельзя. Есть ли какой-то аналог this-а в статическом классе, т.е. ссылка на сам себя? Или это никому нигде не надо и все пользуются ИмяКласса.ИмяЧлена ? 2) Пробовал вместо this писать UserSetting. Но студия говорит, что UserSetting не является объектом. Я понимаю о чем оно говорит. Можно как-то выйти из положения имея именно статический класс? 3) Имеет ли смысл в статическом классе иметь не статические члены? Это сообщение отредактировал(а) V0fka - 21.8.2013, 14:47 |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Во-первых, классы не сериализуются вообще. Сериализуются объекты, объекты являются экземплярами классов, а у статических классов экземпляров не бывает.
Во-вторых, this - не просто ссылка на себя, а ссылка на текущий экземпляр, а у статических классов... ну ты понял ![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
V0fka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
В пхп можно обратиться к текущему экземпляру статического класса из самого себя использую ключевое слово self. Думал, может в шарпе что-то такое тоже есть
![]() ![]() И если не сложно, на 3-й вопросик бы получить ответ. ![]() |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Видимо в пхп само понятие статического класса другое. Мне в принципе непонятно почему класс статический, если у него могут быть экземпляры. Если ты объяснишь мотив, по которому решил сделать класс статическим, то может и можно будет что-то придумать. Нестатические члены могут быть только у экземпляра, а статическй класс ... ![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
V0fka |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Как видно по названию, это пользовательские настройки. Создавать экземпляры необходимости нету и отовсюду в программе нужно иметь доступ к единственному экземпляру настроек. Поэтому я решил, что это будет статический класс.
Например, вот так, студия не ругается:
Но при попытке обратиться к TestClass.test говорит, что для нестатического своства нужен экземпляр. Те знания, которыми обладаю я, дают мне понять, что к test обратиться невозможно никак и неоткуда. И вопрос состоит в том, что на самом ли деле так, либо я чего-то не знаю? ![]() |
||||||
|
|||||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Чем не устраивают стандартные параметры приложения? http://msdn.microsoft.com/ru-ru/library/bb397750.aspx http://msdn.microsoft.com/ru-ru/library/a65txexh.aspx Тебе нужен не статический класс, а статическое свойство, возвращающее единственный экземпляр класса. Гугли singleton. Я именно об этом и написал. У статического класса могут быть только статические члены, поскольку нестатические члены являются членами экземпляра, которых у статического класса просто не может быть.
На самом деле так и я уже несколько раз об этом сказал. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
V0fka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Вот этим
Что такое singleton я знаю, но почему-то думал, что для этих целей именно статический класс лучше подойдет. Я может дотошный немного, но хотел для себя уяснить все однозначно ![]() ![]() |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
А почему ты ищешь сохранённые парамеиры в файле конфигурации? Они сохраняются в специальных файлах .settings и находятся где-то в папке аппдата. Нужно смотреть, восстановились они или нет, а не искать в файле. Что до сохранения простых и сложных настроек, то типы, сохраняемые в настройках, должны быть сериализуемыми, деталей не помню, но всё есть в документации по параметрам. Например эту статью неплохо бы прочитать http://msdn.microsoft.com/ru-ru/library/8eyb2ct1.aspx да и вообще связанные топики
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
V0fka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
diadiavova, спасибо! Во-первых, я действительно не там искал настройки. А во-вторых, они должны были загружаться в программу, но не загружались почему-то. Но в форме, в которой я это делал, и настройки не работали и привязки. Сделал новую форму с тем же функционалом и случилось чудо
![]() ![]() Это сообщение отредактировал(а) V0fka - 23.8.2013, 09:05 |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |