2012-04-25 2 views
1

Я пытаюсь реализовать на очень большой и вздутой системе рамки для использования модульного тестирования, основная проблема заключается в том, что 70% системы реализовано статическими методами. Как я добрался до Молеса, и я очень уверен, что достигню своей цели (я совсем рядом).Статический метод Molling с общим типом возврата <T>

У меня проблема сейчас в том, что я пытаюсь Моль статический метод с параметром Generic:

public static T ExecScalar<T>(IDbConnection cx, string commandText, IDbTransaction tx, IEnumerable<IDbDataParameter> parameters) 

погуглить в Интернете я нашел этот форум сообщение:

http://social.msdn.microsoft.com/Forums/uk/pex/thread/3faadca2-a26f-449c-942e-d800a6079e02

, что это именно моя проблема, и предлагается прочитать инструкцию на странице 10.

Я прочитал инструкцию на странице 1 0, но речь идет о ступлении, а не обмороке. Я попытался применить описанное решение, но если я ставлю:

Ktcar.Cs.Dal.DB.Moles.MDALDB.ExecScalarIDbConnectionStringIDbTransactionIEnumerableOfIDbDataParameter<int> = delegate(IDbConnection conn, String command, IDbTransaction trx, IEnumerable<IDbDataParameter> parameters) 

я получаю:

„Только назначение, вызова, увеличение, уменьшение, и новые выражения объекта может быть использован в качестве заявления“

Я также попытался:

Ktcar.Cs.Dal.DB.Moles.MDALDB.ExecScalarIDbConnectionStringIDbTransactionIEnumerableOfIDbDataParameter<T> = delegate(IDbConnection conn, String command, IDbTransaction trx, IEnumerable<IDbDataParameter> parameters) 

И я получаю ту же ошибку

Или:

Ktcar.Cs.Dal.DB.Moles.MDALDB.ExecScalarIDbConnectionStringIDbTransactionIEnumerableOfIDbDataParameter = null; 

А потом я получаю:

«Невозможно присвоить„ExecScalarIDbConnectionStringIDbTransactionIEnumerableOfIDbDataParameter“, потому что это" групповой метод»

пожалуйста, может кто-нибудь HelpMe о том, как издеваются статический метод с выходом Generic Type?

+0

Ваш образец, кажется, немного не хватает ... ты не должен иметь что-то вроде: Ktcar.Cs.Dal.DB.Moles.MDALDB.ExecScalarIDbConnectionStringIDbTransactionIEnumerableOfIDbDataParameter = (IDbConnection conn, String, IDbTransaction trx, параметры IEnumerable ) => {int x = 0;/* присваивать значение x */return x; }; –

+0

Я изменил присвоение делегата на null, чтобы упростить, если я напишу ваше предложение, я получаю ту же ошибку. Компилятор не любит после названия метода литья. – Qsebas

ответ

1

Попробуйте это:

Ktcar.Cs.Dal.DB.Moles.MDALDB.ExecScalarIDbConnectionStringIDbTransactionIEnumera‌​bleOfIDbDataParameter<int>((IDbConnection conn, String command, IDbTransaction trx, IEnumerable<IDbDataParameter> parameters) => { return 5; }); 
Смежные вопросы