Можно сэкономить время, используя открытые поля делегатов, а не создавая методы для каждой функции. Пока подписи параметров одинаковы, вы можете сделать что-то вроде этого:
public static class Sqlite3
{
public static Action<sqlite3_context> ResultErrorTooBig =
sqlite3_result_error_toobig;
public static Func<T1, T2> AnotherMethod =
sqlite3_another_method;
}
Edit:
Если вам нужно передать параметры по ссылке, вы, вероятно, не сможете использовать эти удобные Action
и Func
классы. Однако вы можете объявить свои собственные типы делегатов, например:
delegate int StatementDelegate(ref sqlite3_stmt pStmt);
Тогда в вашем статическом Sqlite3
классе вы можете сделать что-то вроде этого:
public static StatementDelegate Finalize = sqlite3_finalize;