Как я объясняю в мой ответ на другой вопрос, PECS - это мнемоническое устройство, созданное Джошем Блохом, чтобы помочь вспомнить производителя extends
, Consumer super
.
Это означает, что когда параметризованный тип, передаваемый методу, будет выдавать экземпляры из
T
(они будут извлечены из него каким-либо образом), следует использовать? extends T
, поскольку любой экземпляр подклассаT
также являетсяT
.Когда параметризованный тип, передаваемый методу, будет потреблять экземпляры
blockquote>T
(они будут переданы в он должен что-то сделать),? super T
следует использовать, потому что экземплярT
можно законно передать любому методу, который принимает некоторый супертипT
. Например,Comparator
можно использовать наCollection
.? extends T
не будет работать, потому чтоComparator
не может работать наCollection
.Обратите внимание, что обычно вы должны использовать только
? extends T
и? super T
для параметров какого-либо метода. Методы должны использоватьT
только как параметр типа для типичного типа возврата.
попытайтесь очистить свой локальный кэш VS. найдите свой проект и удалите папку. папка создается VS, по какой причине я честно не понимаю. но у меня было несколько случаев, где очистка его и выполнение восстанавливания чинят вещи... надеются, что это - все, в чем Вы нуждаетесь также.
здесь
%Temp%\VWDWebCache
и возможно здесь
%LocalAppData%\Microsoft\WebsiteCache
Состоит в том управление, что Вы пытаетесь сослаться в повторителе?
Раз так тогда необходимо посмотреть их использование метода FindControl.
, Например, для:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server">stest</asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
необходимо было бы сделать это для ссылки на него:
LinkButton lb = Repeater1.FindControl("LinkButton1");
вы также найдете временные файлы .net, которые можно безопасно удалить здесь: C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Временные файлы ASP.NET
Вышеуказанное исправление (удаление временных файлов) мне не помогло. Мне пришлось удалить файл PageName.aspx.design.cs
, затем щелкнуть правой кнопкой мыши по моей странице и выбрать "Преобразовать в веб-приложение" из контекстного меню.
Когда Visual Studio попыталась восстановить файл конструктора, она обнаружила (и открыла мне) источник проблемы. В моём случае VS потеряла ссылку на DLL, нужную одному из элементов управления на моей странице, поэтому мне пришлось очистить сгенерированные папки bin в моём проекте.
В моем случае я работал с некоторым старым кодом веб-сайта, который я преобразовал в решение VS2008. Я столкнулся с той же проблемой.
Для меня исправление заключалось в том, чтобы щелкнуть правой кнопкой мыши проект веб-сайтов в обозревателе решений и выбрать «Преобразовать в веб-приложение». В результате были созданы файлы designer.cs
для всех страниц, на которых раньше этих файлов не было.