Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > Раширяющие методы |
Автор: Uvs 18.10.2007, 09:22 |
Всем привет! Хочу добавить в класс OdbcDataReader метод CopyTo(List<T>), чтоб скопировать содержимое в список любой структуры. Для этого создал статический класс со статическим методом: public static class OdbcDataReaderExt<T> { public static void CopyTo(this OdbcDataReader dr, List<T> list) { list.Add(dr.Get....()); } } ,но компилятор ругается, что т.о. нельзя создать расширяющий метод. А без шаблона - никакого интереса нет! Как это можно сделать? |
Автор: Linus 18.10.2007, 09:30 |
Как ругается? Может это из-за параметра this OdbcDataReader dr? |
Автор: 1stain 18.10.2007, 10:00 | ||
а если так:
з.ы. чисто навскидку, ибо Orcas еще не ставил... |
Автор: HalkaR 18.10.2007, 10:05 |
Uvs, .Net то у тебя 3,5? |
Автор: Uvs 18.10.2007, 10:19 |
да. От этого сильно зависит? Добавлено @ 10:22 Ругается вот так: error CS1106: Extension methods must be defined in a non-generic static class Если убрать шаблон из названия класса, то сразу тип T в параметре функции неизвестен. |
Автор: Linus 18.10.2007, 10:41 | ||
Ааа, теперь понял ![]() |
Автор: Uvs 18.10.2007, 10:46 |
Всем большое спасибо и конкретно "одинокому камню" ![]() public static class OdbcDataReaderExt { public static bool CopyTo<T>(this OdbcDataReader dr, List<T> list) { try { .... } catch(Exception e) { MessageBox.Show(e.Message); return false; } finally { dr.Close(); dr.Dispose(); } return true; } } |
Автор: 1stain 18.10.2007, 13:49 |
не за что ![]() а вот за такое, логарифмической линейкой по рукам бить надо! Не стоит перехватывать ВСЕ типы исключений. Юзаешь ODBC - вот и перехватывай ODBCException... |
Автор: Uvs 19.10.2007, 04:32 |
хм... - возможно |