![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
Кто-нибудь может объяснить в чём смысл следующего предупреждения:
Field 'TestStruct.TestField' is never assigned to, and will always have its default value 0. для такого кода:
если структуру объявить, как public, то всё ок. структура по использованию именно internal, понятно, что можно просто варнинги отрубить или сделать псевдо полезный конструктор. но в чём смысл подобного поведения компилятора? -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
Возможно, недоработка в компиляторе
УПС |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Это сообщение означает: "Смысл твоей структуры???, она нигде не используется".
А так как структура внутренняя (internal), то она может использоваться только в рамках программы. Если сделать структуру public, то, возможно, она будет использоваться вне твоего приложения. И компилятор молчит. P.S. Если добавить где-нибудь строчки:
То варнинга не будет. P.P.S. Вот только почему компилятор не обращает внимание на internal class, а только на internal struct |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
слушай, и правда. тупо сделано, имхо. если уж отслеживать подобные вещи, то тогда уж для конкретных переменных и полей. структура-то чем виновата?! Добавлено @ 20:08
наследование? -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Структура -- это большооое поле, включающее в себя другие поля, ИХМО. Врядли, наследник не видит internal class-ы. (только protected или public) Скорее всего я не прав |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Не пойму, а что здесь не так? Компилятор видит, что нигде в программе ты не используешь поле TestField и спрашивает, зафига ты его вообще объявил.
Добавлено @ 00:51 Дык он на поле TestField и ругается, а не на всю структуру. Причем тут она полностью? |
|||
|
||||
| mr.DUDA |
|
||||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
У меня компилятор (2.0) НЕ ругается, если сделать структуру и поле public. Во всех остальных комбинациях модификаторов - ругается. Причём ошибки разные. Если структура - internal, а поле - public, то "Field 'field' is never assigned to, and will always have its default value 'value' ". В мсдн написано по этому поводу:
Если структура - public, а поле - private, то: "The private field 'WindowsApplication2.Test.testField' is never used". мдсн:
Причём не зависит от того, это структура или класс. З.Ы. почему ничего не пишет, если сделать и поле и структуру (класс) public-ом -- для меня большая загадка... -------------------- ![]() |
||||
|
|||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
||||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Если ты объявил его как internal - однозначно он больше нигде не используется. Так как в твоей сборке ты не использовал это поле, значит оно вообще бесполезное, о чем компилятор предупреждает. Если ты объявишь класс/структуру как public, появляется возможность, что кто-то другой использует это поле в своей сборке => возможно, оно о бесполезно. Что непонятно
|
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
Вобщем получается, что мой начальный постулат был верен
|
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
На мой взгляд Да Это сообщение отредактировал(а) ivashkanet - 28.3.2006, 12:08 |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Занавес
-------------------- ![]() |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |