Работа с типами C#

200
18 июля 2018, 23:10

Нужна помощь в работе с типами. У меня есть переменная myField, мне нужно ее преобразовать в тип, который я не должен знать. То есть нужен механизм который делал бы примерно вот так:

Type type = typeof(AnyNotMyClass); //какой класс будет в скобках я не знаю
var field = (type) myField; //допустим преобразование будет возможным

Возможно ли такое вобще делать в c# ?

Answer 1

Написанный код не висит в воздухе, поэтому где-то до этого на вход метода передаётся переменная с типом Type

void Main()
{
    Test(typeof(string));
}
// Define other methods and classes here
public void Test(Type t)
{
        Console.WriteLine(t);
}

Само приведение делается двумя способами (см. подробнее на en so): через Convert или Generic-метод.

public static void method1(Type convertTo, object toBeConverted)
{
    var convertedValue = Convert.ChangeType(toBeConverted, convertTo);
}
public static void method2<TConvert>(object toBeConverted)
{
    var convertedValue = (TConvert)toBeConverted;
}

И как бы вы не говорили, что не знаете, какой это будет тип -- нужно уточнить, откуда вы узнаёте тип и в какой момент.

READ ALSO
Wizard Control C#

Wizard Control C#

Всем привет :)

202
Как вызвать Storyboard в xaml.cs?

Как вызвать Storyboard в xaml.cs?

Как вызвать анимацию в xamlcs ?

224
C# fluent interface(цепочные интерфейсы),Custom HtmlHelper

C# fluent interface(цепочные интерфейсы),Custom HtmlHelper

Продолжение темы fluent interface

198
Использование базы данных в приложении winforms

Использование базы данных в приложении winforms

Есть толстый клиент написанный на winformsК нему подключена база данных mssql

209