Вопрос ко всем мастерам C#. У меня есть метод, назовите его myFunc, и он принимает списки аргументов переменной длины/типа. Сигнатура аргумента самой myFunc — myFunc(params object[] args)
, и я использую отражение в списках (подумайте об этом, например, как о printf).
Я хочу обрабатывать myFunc(1, 2, 3)
иначе, чем myFunc(new int[] { 1, 2, 3 })
. То есть в теле myFunc я хотел бы перечислить типы моих аргументов и хотел бы получить {int, int, int}, а не int[]. Прямо сейчас я получаю последнее: по сути, я не могу различить два случая, и они оба приходят как int[].
Я хотел, чтобы первое отображалось как obs[].Length=3, с obs[0]=1 и т. д.
И я ожидал, что последнее будет отображаться как obs[].Length=1. , with obs[0]={ int[3] }
Можно ли это сделать, или я прошу невозможного?