|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
То ли я очень сильно затупил, то ли я спрашиваю ерунду В общем мне нужно объявить поле Код: c# 1.
но ограничить только теми типами, которые реализуют определенный интерфейс что-то типа Код: c# 1.
это можно как-то сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 16:54 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
сделай класс на основе нужных интерфейсов Код: c# 1. 2. 3. 4. 5. 6.
добавляй его поле Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 16:56 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Либо хенерики c where T : IMyInterface, либо public IMyInterface MyType { get; set; } ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 17:00 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Ой... не так понял... Или наоборот так? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 17:01 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 17:08 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
buserлибо public IMyInterface MyTypeмне нужен не IMyInterface, а typeof(IMyInterface) buserЛибо хенерики c where T : IMyInterfaceкак? в результате я все равно получаю IMyInterface вместо typeof(IMyInterface) Konst_One Код: c# 1.
это что за запись? ": base" применяется к конструктору, а не к классу. Да и не то это. Задача: один модуль должен реализовать интерфейс, а затем передать его другому модулю, чтобы тот другой мог создать его экземпляр. Впрочем, видимо это логично сделать через Func и лямбду... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 17:11 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
ЕвгенийВ, да, я об этом думал, но поле все равно получается Type и его надо будет приводить потом... Сделаю по-другому, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 17:13 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4.
копипаст не оттуда =) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 17:14 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Shocker.ProЕвгенийВ, да, я об этом думал, но поле все равно получается Type и его надо будет приводить потом... Сделаю по-другому, спасибо. К чему приводить? К Type? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 17:17 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Shocker.Pro Код: c# 1.
public IMyInterface MyType { get; set; } ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 17:36 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Shocker.Pro, тоды только так, как ЕвгенийВ написал... но каку-то фигню вы делаете... как в общем звучит задача? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 17:39 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
buserShocker.Pro, тоды только так, как ЕвгенийВ написал... но каку-то фигню вы делаете... как в общем звучит задача? 16276782 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 17:43 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Shocker.Proмне нужен не IMyInterface, а typeof(IMyInterface) Shocker.Proно поле все равно получается Type и его надо будет приводить потом.. Так куда вы собитраетесь приводить? К какому типу? Shocker.ProЗадача: один модуль должен реализовать интерфейс, а затем передать его другому модулю, чтобы тот другой мог создать его экземпляр. Ну так в чем дело? Не можете просто интерфейс передать? зачем мучаться то? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 17:50 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Arm79Ну так в чем дело? Не можете просто интерфейс передать? зачем мучаться то?Дык эта. Можно экземпляр класса, реализующего интерфейс. Вопрос в том, как передать при желании сам интерфейс. То есть как объявить тип параметра или тип поля. Можно объявить его как Type, но в этом случае тогда и понадобится приведение, когда нужно будет с ним работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 17:55 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Shocker.Pro, то есть вынести описание интерфейса в отдельную сборку и юзать ее двумя разными модулями нельзя? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 17:57 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Есть Модуль1, он реализует IMyInterface Есть Модуль2, он работает с конкретной реализацией IMyInterface, сделанной Модулем1 Для этого Модуль2 должен каким-то образом получить ссылку на реализацию (не на экземпляр), которую сделал Модуль1, вот я и пытаюсь ее передать. Я уже осознал, как сказал выше, что я попытался сделать велосипед и лучше воспользоваться делегатом, так что дальнейшая дискуссия носит теоретический характер. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 18:05 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Shocker.ProДля этого Модуль2 должен каким-то образом получить ссылку на реализацию (не на экземпляр), которую сделал Модуль1, вот я и пытаюсь ее передать. Вам готовят что-нибудь слова IoC и DI? Примеры: Application Unity Blocks, MEF, MAF, Spring, Castle Windsor, многие другие... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 18:08 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Shocker.Pro, не могу понять, зачем вам тип в чистом виде? ( интерфейса) вы никогда не создадите объект этого типа,ну им и не воспользуетесь, конечно если исключить динамическое создание типа, орм что ли мастерите.? зы каждый девелопер должен посадить зрение, построить велосипед и вырастить репозиторий ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 18:15 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Arm79Вам готовят что-нибудь слова IoC и DI?Говорят. Практического опыта маловато, поэтому сразу не сообразил. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 18:15 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Где-то в степине могу понять, зачем вам тип в чистом виде? ( интерфейса) вы никогда не создадите объект этого типа,ну им и не воспользуетесь,да не самого интерфейса тип, а тип реализации интерфейса. Еще раз повторю самого себяShocker.Proто ли я спрашиваю ерундуShocker.ProВпрочем, видимо это логично сделать через Func и лямбду...Shocker.ProЯ уже осознал, как сказал выше, что я попытался сделать велосипед кстати, а если я хочу передать статический класс через делегат, ведь я не могу создать его экземпляр, как быть? или опять глупость? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 18:21 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Shocker.Proкстати, а если я хочу передать статический класс через делегат, ведь я не могу создать его экземпляр, как быть? или опять глупость? А зачем вам вообще статические классы? Да, через делегат их не передать. Но у них, как бы, другое назначение. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 18:24 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Да получается, видимо, так - хочу создать типа фабрику в Модуле2 А Модуль1 должен этой фабрикой воспользоваться. При этом Модуль1 не знает заранее точный тип класса фабрики, знает только интерфейс, который она реализует. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 18:28 |
|
ограничения для поля типа Type
|
|||
---|---|---|---|
#18+
Shocker.Pro, х.з делегируйте все определения в модуль приемник, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 18:38 |
|
|
start [/forum/topic.php?fid=20&fpage=115&tid=1402728]: |
0ms |
get settings: |
12ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 371ms |
total: | 496ms |
0 / 0 |