|
T не содержит определения для (поля класса). Третий час сижу
|
|||
---|---|---|---|
#18+
День добрый! Бедуевина случилась, помогите разобраться, пожалуйста... Код: c# 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.
В 25-ой строке ругается на выделенное поле класса. Ошибка"T" не содержит определения для "id" и не был найден метод расширения "id", принимающий тип "T" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку) Это поле присуще всем классам, которые я использую в качестве типа Т. Но это и не важно, т.к. прога даже не компилится. Уж очень не хочется разделять этот шаблон на кучу классов-близнецов, отличающихся лишь типом элементов массива. Ваяю: MSA 2003, mdb | VB.NET + mdb/SQL Express | 1Сv8, ТК УП | C# + FDB ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2014, 19:09 |
|
T не содержит определения для (поля класса). Третий час сижу
|
|||
---|---|---|---|
#18+
Если уж так хочется, то можешь попробовать через Reflection вытянуть нужное свойство ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2014, 19:18 |
|
T не содержит определения для (поля класса). Третий час сижу
|
|||
---|---|---|---|
#18+
КириллН, ндык... добавь в ограничения базовый класс али интерфейс... от которого все сущности наследуются... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2014, 19:27 |
|
T не содержит определения для (поля класса). Третий час сижу
|
|||
---|---|---|---|
#18+
КириллН, авторЭто поле присуще всем классам, которые я использую в качестве типа Т. очень интересное утверждение, а вот такой тип может встать в вашу коллекцию class Foo{} - может а такой - class Ass{} может и где тут Id? если это свойство присуще всем типам Т то выделите его в интерфейс, а этот интерфейс добавьте в ограничение типа T , и все можете с ним ( с полем) работать легально, без всяких рефлексий, и другой тип не реализующий интерфейс не занырнет в вашу коллекцию ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2014, 19:27 |
|
T не содержит определения для (поля класса). Третий час сижу
|
|||
---|---|---|---|
#18+
Sergey S, Не знаю, что это. Попробовал, покурив гугл, так: Код: c# 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.
Не уверен, что правильно сделал, но выставив точку останова после последней красной строки, этого самого останова так и не увидел. Будто бы последняя красная строка и не выполняется. Где-то в степи, buser, Сейчас попробую. Можно чуть подробнее про интерфейс. Ни разу их не пользовал. Правильно понимаю, что вместо шаблонного класса вы предлагаете создать интерфейс (типа IObjectCollection) с пустыми (или прототипами?) методами? Боюсь, что удобство использования шаблонного класса может замениться неудобством интерфейса, каждый из методов которого, насколько я понял, надо описывать в реализующих классах. Если чушь несу - может, поправите примерчиком?.. ЗЫ: Народ, реально огромное спасибо за отзывчивость и участие... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2014, 19:48 |
|
T не содержит определения для (поля класса). Третий час сижу
|
|||
---|---|---|---|
#18+
КириллН, авторСейчас попробую. Можно чуть подробнее про интерфейс. ну не знаете что это такое, примените ко всем типам вашим базовый класс со свойством Id, интерфейсы это тот же базовый абстрактный класс без конструктора IL , вытащенный для нас под таким загадочным словом ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2014, 19:51 |
|
T не содержит определения для (поля класса). Третий час сижу
|
|||
---|---|---|---|
#18+
Где-то в степи, ВО! Об этом я и не подумал... Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2014, 19:54 |
|
T не содержит определения для (поля класса). Третий час сижу
|
|||
---|---|---|---|
#18+
Где-то в степиинтерфейсы это тот же базовый абстрактный класс без конструктора IL Уточню: базовый - реализуемый наследниками абстрактный - не могущий быть использованным в качестве типа создаваемых объектов конструктор IL - это что? плохо, когда самоучка... Знания не систематизированы и появляются хаотично ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2014, 20:02 |
|
T не содержит определения для (поля класса). Третий час сижу
|
|||
---|---|---|---|
#18+
Где-то в степину не знаете что это такое, примените ко всем типам вашим базовый класс со свойством Id, интерфейсы это тот же базовый абстрактный классесть существенная разница, базовому классу можно наследовать только одному, а интерфейсов можно реализовать несколько в одном классе. Так что лучше изучите интерфейсы - это не так сложно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2014, 20:09 |
|
T не содержит определения для (поля класса). Третий час сижу
|
|||
---|---|---|---|
#18+
Shocker.Pro, Уже приступил. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2014, 20:10 |
|
T не содержит определения для (поля класса). Третий час сижу
|
|||
---|---|---|---|
#18+
КириллН, создай маленькую соплю в консоли, тип реализующий свой кастомный интерфейс и посмотри что там получилось в байт коде утилитой C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\ildasm.exe Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2014, 20:10 |
|
|
start [/forum/topic.php?fid=20&msg=38530135&tid=1403407]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 386ms |
total: | 541ms |
0 / 0 |