Дженерики являются не обязательно способом пойти. В частности, введите (Полученных), не считается типом (Основы).
Первый, добавьте новый метод к своему производному классу, который возвратит значение с корректным типом. Во-вторых, отметьте метод переопределения не - переопределяемый и имейте его делегат в Вашем новом методе.
Вот именно. Вы решили свою проблему. Дочерние классы не будут в состоянии повторно развернуть тип, потому что они должны переопределить Ваш новый метод.
я приношу извинения, если код не совершенно правилен; я привык к VB.net.
abstract class C1 {
public abstract IEnumerable<Byte> F1();
}
class C2 : C1 {
public sealed override IEnumerable<Byte> F1() {
Return F2();
}
public overridable IList<Byte> F2() {
Return {1, 2, 3, 4};
}
}
Как насчет:
SELECT * FROM sometable WHERE CHAR_LENGTH(LINK) > 1
Вот страница строковых функций MySql (5.0).
Обратите внимание, что я выбрал CHAR_LENGTH
вместо LENGTH
, как будто в данных, которые вы ' Возможно, действительно интересует, сколько символов есть, а не сколько байтов памяти они занимают. Таким образом, для приведенного выше строка, в которой LINK представляет собой один двухбайтовый символ, не будет возвращена, тогда как при использовании LENGTH
.
Обратите внимание, что если LINK
- это NULL
, результат CHAR_LENGTH (LINK)
также будет NULL
, поэтому строка не будет соответствовать.
select * from [tbl] where [link] is not null and len([link]) > 1
Для пользователя MySQL:
LENGTH([link]) > 1
Попробуйте:
SELECT
*
FROM
YourTable
WHERE
CHAR_LENGTH(Link) > x