Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
25.02.2004, 10:54
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
Делаю вызов исключения. Вроде как всё нормально, в консоли получаю: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Но перед получением сообщения в консоли выскакивает еще виндовое окно с сообщением. Что нужно сделать, что-бы это окно не выскакивало? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 10:59
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
как вариант Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 11:02
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
выскакивает еще виндовое окно с сообщением все верно - это реакция на не обработанное исключение, и здесь не важно - консольное ли у вас приложение, или винформс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 11:03
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
о, вот и h того же мнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 11:09
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
2snake угу щас softbuilder@inbox.ru скажет, что обрабатывать исключения нельзя, потому что это цензура :) шутка, шутка, шутка, последний раз :-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 11:10
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
вообще-то это дело как-то ещё можно обойти, на уровне настроек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 11:12
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
to hDrummer: Дело в том что если такую обработку делать в самом конструкторе, то тогда нет смысла вообще генерировать исключение, достаточно только вывести сообщение. И в том и другом случае новый обьект будет создан (еще один). А нужно иметь только один экземпляр обьекта. Обработку можно сделать в Main, но это неэффективно, так как придёться такую обработку делать в любом коде когда будет создаваться обьект данного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 11:13
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
нет, блин, на уровне компиляции тоже можно вроде бы, но надо проверить: /warn:<n> Set warning level (0-4) /nowarn:<warning list> Disable specific warning messages кажется какой-то из этих ключей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 11:27
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
авторА нужно иметь только один экземпляр обьекта. Тут была реализация старого решения с мьютексами для этого дела, а мне кажется можно ещё так извратиться: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Тогда вообще можно контролировать количество объектов в памяти по желанию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 11:37
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
авторОбработку можно сделать в Main, но это неэффективно, так как придёться такую обработку делать в любом коде когда будет создаваться обьект данного класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 11:50
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
авторОбработку можно сделать в Main, Хорошо, как вы это себе представляете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 12:16
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
Примерно так как это сделано у тебя: авторpublic static void Main() { if (AloneInTheDark.MustBeOnlyOne<1) { AloneInTheDark alone = new AloneInTheDark(); } else {Console.WriteLine("I have to be alone!");} Или непосредственно обработку исключения при создании обьекта. Но я еще раз повторяю - такую обработку придёться делать каждый раз когда будет создаваться обьект, а это неэффективно. P.S. Если избежать окна нельзя - тогда вопрос закрыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 12:39
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
Если тебя интересует как избавиться от создания более чем одного экземпляра обьекта, то так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. Пример использования: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код: plaintext 1. 2. 3. 4. Попытки же создать обьект в обход предлагаемых правил - убиваются на корню, еще при компиляции: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Цель достигнута. Но повторю еще раз, изначально меня интересовал другой вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 12:41
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
Да, забыл текст попытки в обход опубликовать, но я думаю и так понятно: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 12:45
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
Я к чему веду - дело в том, что подход со статическим членом класса-счётчиком обеспечивает контроль за созданием объектов во всех сборках приложения, в то время как простой контроль в методе Main его не обеспечит. А чтобы придать классу возможность контроля за созданием своих экземпляров, нужно иметь функциональность, позволяющую конструктору отменять свой вызов, т.е. что типа return false, но такой возможности нет. Или просто нужен какой-то другой подход, о котором я не имею представления. Итого - есть две крайности реализации на уровне класса - или вообще не создавать экземпляров класса или создавать их неограниченное количество, всё остальное только с контролем извне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 13:15
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
авторА чтобы придать классу возможность контроля за созданием своих экземпляров, нужно иметь функциональность, позволяющую конструктору отменять свой вызов, т.е. что типа return false, но такой возможности нет. Или просто нужен какой-то другой подход, о котором я не имею представления. Я не понял, мой вариант тебя не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 13:24
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
ага решение есть вот такое - Код: plaintext 1. 2. 3. и пользуем например так - авторConsole.WriteLine(myGenerator.OneObject.ToString()); и никаких повторных созданий. Да вообще никаких созданий пользователем класса :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 13:27
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
авторЯ не понял, мой вариант тебя не устраивает? Устраивает, я просто увлёкся и не видел твоего варианта :) Но моё решение кажется менее объёмное ;) Минусы найдёшь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 13:38
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
to hDrummer: авторpublic class myGenerator { public static AloneInTheDark OneObject = new AloneInTheDark(); } Ты не приводишь полного кода своих примеров, это не очень удобно. Но из того что есть я вижу использование двух классов. И я не вижу причин невозможности создать по несколько экземпляров их обоих. Что мне помешает создать два экземпляра класса myGenerator?: myGenerator mg1 = new myGenerator(); myGenerator mg2 = new myGenerator(); И что мне помешает написать: public class myGenerator { public static AloneInTheDark OneObject = new AloneInTheDark(); public static AloneInTheDark2 OneObject = new AloneInTheDark(); } Если уж ты предлагаешь вариант, хотелось бы иметь весь код с результатами выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 13:56
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
авторЧто мне помешает создать два экземпляра класса myGenerator?: myGenerator mg1 = new myGenerator(); myGenerator mg2 = new myGenerator(); ну на самом деле это решается добавлением в класс myGenerator приватного конструктора, который здесь не приведен, я думаю это и так понятно, или в версии C#2.0 добавлением к объявлению класса модификатора static, там есть такое нововведение, чтобы не морочиться с приватными конструкторами ради запрещения создания экземпляра класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 14:00
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
hDrummer, вопрос в offtpic А код первого шарпа, если его "откомпилиить" в сборку компилятором второго, будет работать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 14:01
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. вот код, а результат - вывод Here I am. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 14:08
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
ОселА код первого шарпа, если его "откомпилиить" в сборку компилятором второго, будет работать? что имеется ввиду 1.0 и 1.1 или 1.0/1.2? 2softbuilder я вот вижу в своём решении тот минус, что в классе myGenerator жестко забит конструктор Код: plaintext это даже не минус, а особенность реализации. Больше контроля - меньше свободы. В твоём решении наоборот - меньше контроля и больше совбоды. softbuilder И я не вижу причин невозможности создать по несколько экземпляров их обоих. Если это будет библиотека классов, то для пользователя можно сделать public только myGenerator, о классе AloneInTheDark он ничего знать не будет и не сможет его использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 14:31
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
to hDrummer: У меня такое ощущения, что мы с тобой на разных языках говорим. Еще раз уточни обьекты какого класса на твой взгляд в твоём примере нельзя создать более одного раза? Вот твой код с моими комментариями. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2004, 14:33
|
|||
|---|---|---|---|
Вызов исключенния |
|||
|
#18+
hDrummer "что имеется ввиду 1.0 и 1.1 или 1.0/1.2? " Тогда по-другому. Код каких версий С# компилятора из следующего списка 1.0, 1.1,1.0/1.2 будет работать, будучи "откомпилированным" "компилятором" версии 2.0 (той, что с шаблонами) без внесения изменений в код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/search_topic.php?author=Evriala&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 681ms |
| total: | 872ms |

| 0 / 0 |
