Gor
Постоялец
Offline
|
|
« : 08-10-2012 17:58 » |
|
Привет! Есть код: object ob = new Empl(39.7, “Gans”); float f = (float)ob; Выдает ошибку: «Specified cast is not valid». Почему? Вроде все так… Спасибо.
|
|
|
Записан
|
|
|
|
Dale
|
|
« Ответ #1 : 08-10-2012 18:09 » |
|
А какое значение ожидаете получить для f? (Так, на всякий случай, если бы каким-то непостижимым для меня образом это приведение вдруг сработало).
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
Sla
|
|
« Ответ #2 : 08-10-2012 18:12 » |
|
я ни хрена не понимаю.. если это правильный код, то зачем такое извращение?
Вот что это, какой тип? object ob
А это? float f
А что умеет объект Empl, какие есть у него методы?
Не... не понимаю...
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #3 : 08-10-2012 18:30 » |
|
Скорее всего глупейшая опечатка - после ob должно следовать какое-то свойство.
Но самый факт вопроса свидетельствует о полном невосприятии кода и синтаксиса.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Gor
Постоялец
Offline
|
|
« Ответ #4 : 08-10-2012 19:27 » |
|
Дело в том, что переменную ob можно присвоить к типу float. А вот присвоить значение этого типа объекту Empl невозможно.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #5 : 08-10-2012 20:25 » |
|
А вот присвоить значение этого типа объекту Empl невозможно.
Ну так этого и не наблюдается.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dale
|
|
« Ответ #6 : 08-10-2012 20:40 » |
|
Дело в том, что переменную ob можно присвоить к типу float. А вот присвоить значение этого типа объекту Empl невозможно.
Во-первых, переменную нельзя присвоить к типу. А во-вторых, в чем же все-таки заключается вопрос?
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #7 : 09-10-2012 08:00 » |
|
Скорее всего глупейшая опечатка - после ob должно следовать какое-то свойство.
Однозначно. Причём, скорей всего, первый параметр конструктора. Всё остальное - бред. зы Больше всего мне нравятся посты à la "есть код". Где он есть? Зачем он есть? Он был всегда?
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Gadget
|
|
« Ответ #8 : 09-10-2012 08:33 » |
|
Gor, любой тип данных в языке c# (будь то стандартный int или float или какой-то пользовательский тип Empl) является частным случаем типа object. то есть каждый float есть object, но не каждый object есть float. любой тип ты можешь привести к object. но object ты не можешь приводить к чему вздумается. object ob = new Empl(39.7, “Gans”); означает, что ты cоздаешь экземпляр своего загадочного Empl и присваеваешь его переменной типа object. если ты хочешь в дальнейшем использовать какие-то поля своего загадочного экземпляра, то тебе нужно было присваивать его переменной типа Empl, то есть Empl empl = new Empl(39.7, “Gans”); насколько я понимаю, в Empl есть какое-то поле типа float. назовем его FloatField. чтобы воспользоваться им тебе нужно обратиться к переменной empl: float f=empl.FloatField; Это ты хотел сделать?
|
|
|
Записан
|
|
|
|
Gor
Постоялец
Offline
|
|
« Ответ #9 : 09-10-2012 19:21 » |
|
Gadget и остальным большое спасибо (искренне) за помощь. Но суть вопроса была в другом. Что надо, я получил. ЗЫ Джон, да перестань ты обижаться.
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #10 : 10-10-2012 09:11 » |
|
ЗЫ Джон, да перестань ты обижаться. Перестань? А когда это я начал обижаться? Для справки: я вобще никогда не обижаюсь. ИМХО это досуг бездельников. У меня нет просто на это времени. Я рад (искренне), что ты получил что надо, умело скрыв от нас суть вопроса, оставив в полном недоумении, чем же тебе всё-таки помогли, лишний раз доказав справедливость тезиса: дело помощи утопающим - дело рук самих утопающих.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
RXL
|
|
« Ответ #11 : 10-10-2012 09:24 » |
|
Жень, тебе надо присвоить приз месяца за искрометную шутку: каску и коническое ведро с песком
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #12 : 10-10-2012 09:43 » |
|
Каска у меня уже есть.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
RXL
|
|
« Ответ #13 : 10-10-2012 17:50 » |
|
Тогда багор! А вообще, конечно, это офтопик. Извиняюсь.
|
щит.jpg (72.75 Кб - загружено 1617 раз.)
|
« Последнее редактирование: 10-10-2012 17:53 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|