| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .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 |
| хм... - возможно |