Generi c массив в качестве параметра в методе - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь преобразовать string[] в более общий c тип. Ответ, вероятно, прост, но я не могу понять его сейчас.

Моя проблема в том, что у меня есть метод genericMethod(), который принимает запрос SQL в качестве первого параметра, поэтому он будет выглядеть например: genericMethod(string).

Но запрос SQL принимает и некоторые параметры, и это зависит от того, как мне нужно использовать запрос SQL.

Может выглядеть один запрос как это:

genericMethod($@"
SELECT [CustomerId], COUNT (*) , MAX (OrderDate) FROM [MyTable]
WHERE [ProductType] = @0
AND ([OrderDate] > DATEADD(DAY, -@1, GETUTCDATE()))"
, productType, myChosenDate);

Это означает, что массив-параметр состоит из строки и целого.

Но в другой ситуации это будет выглядеть примерно так:

genericMethod($@"
SELECT [CustomerId], COUNT (*) , MAX (OrderDate) FROM [MyTable]
WHERE ([OrderDate] > DATEADD(DAY, -@1, GETUTCDATE()))"
, myChosenDate);

Это означает, что массив-параметр состоит только из целого числа.

И, в-третьих, параметры будут строковыми (для запроса), а затем от 1 до N строковых параметров для запроса, который я использую. прямо сейчас.

Пример третьего использования:

genericMethod($@"
SELECT [CustomerId], COUNT (*) , MAX (OrderDate) FROM [MyTable]
WHERE [ProductType] = @0
WHERE [Manufacturer] = @1
AND ([OrderDate] > DATEADD(DAY, -7, GETUTCDATE()))"
, productType, manufacturer);

Надежда, которая имеет смысл.

Способ, который я до сих пор решил, - это использование genericMethod(string, string[] params) , но, как вы можете видеть, я хочу, чтобы последний параметр был более обобщенным c, чтобы массив мог Список строк и int, а не только строк.

Возможно ли это?

...