Нужен какой-то бесконечный метод типа generi c на C# - PullRequest
0 голосов
/ 11 февраля 2020

У вас есть dsl для выполнения операторов InsertInto, и он имеет такую ​​подпись:

 ICustomInterface<T1, T2, T3> InsertInto<T1, T2, T3>(string tableName, CustomType type1, 
CustomType type2,CustomType type3);

Пример:

 var actualInsert = this._sql
                    .InsertInto<int, string, int>("dbo.Words",
                        type1,//this is some custom sql type
                        type2,
                        type3
                    )
                    .Values(
                        (43, "newVal2", 42), //actual values
                        (44, "newVal3", 42)
                    )

Проблема, с которой я столкнулся, заключается в том, что она не будет работать с бесконечным типом параметры. Один вид разрешения, который я думаю, состоит в том, чтобы создать такой метод:

 ICustomInterface<TRes> InsertInto<TRes>(string tableName, params CustomType[] types)
                where TRes : ITuple;

Но это не красиво (нужно набрать его в скобках - InsertInto<(int,string,int)>) и не может быть уверен, что CustomType[] длина массива будет равна TRes длина элементов кортежа. У кого-нибудь есть идея получше?

...