Как в C# преобразовать объект из одного типа в другой с помощью обобщенного метода?

Как можно использовать обобщение для создания универсального метода, который позволит вводить значения различных типов данных в массив?
  • 5 мая 2024 г. 8:40
Ответы на вопрос 2
Для преобразования объекта из одного типа в другой с помощью обобщенного метода в C# можно использовать следующий код:

```csharp
public static TOutput Convert<TInput, TOutput>(TInput input)
{
    return (TOutput)Convert.ChangeType(input, typeof(TOutput));
}

//Пример использования
int intValue = Convert<string, int>("10");
Console.WriteLine(intValue); // Выведет 10
```

Чтобы создать универсальный метод для ввода значений различных типов данных в массив, можно также использовать обобщенный метод:

```csharp
public static T[] CreateArray<T>(params T[] elements)
{
    return elements;
}

//Пример использования
int[] intArray = CreateArray(1, 2, 3, 4);
string[] stringArray = CreateArray("A", "B", "C");
```

В данном примере метод CreateArray позволяет передавать значения различных типов данных в массив и возвращает его.
Вам нужен .NET 7 или новее чтобы воспользоваться интерфейсом IParsable . 
public static void Input<T>(T[] nums) where T : IParsable<T>


(ref в параметре не нужен при таком использовании внутри, массив это ссылочный тип)
Похожие вопросы