Вы можете передать его как object
.
И вы можете проверить тип данных с помощью функции GetType
.
Вот код, представляющий мое решение, он может содержать ошибки но вы должны быть в состоянии исправить это согласно вашей логике c, я просто иллюстрирую идею решения.
static int containsThatItem(object arr1, object arr2)
{
if (arr1.GetType() == typeof(int[]) && arr2.GetType() == typeof(char[]))
{
int[] Converted_arr1 = (int[]) arr1;
char[] Converted_arr2 = (char[]) arr2;
Dictionary<char, bool> map = new Dictionary<char, bool>();
foreach (var e in Converted_arr1)
{
map.Add(e, true);
}
foreach (var e in Converted_arr2)
{
if (!map.ContainsKey(e))
{
continue;
}
if (map[e])
{
Console.WriteLine("Item Found!");
}
}
}
return 0;
}
static void Main(string[] args)
{
int[] arr1 = { 0, 1, 2, 3 };
char[] arr2 = { 'a', 'b', 'c', 'd' };
//Here I'm getting compile time error
containsThatItem(arr1, arr2); //All I want is to overcome this compile time error by adding validation of datatype inside the containsThatItem method.
}