Время выполнения набрано / общая переменная - PullRequest
0 голосов
/ 12 сентября 2018

Я ищу способ реализовать класс, подобный следующему, содержать конструктор с двумя параметрами, второй параметр - типизированный тип среды выполнения.

Я использую .Net3.5 внутри Unity 3D

public class Parameter
{
    private mParameterName;
    private T parameterValue; // runtime parameter

    public Parameter( string parameterName, string parameterValue ){}
    public Parameter( string parameterName, long parameterValue ){}
    public Parameter( string parameterName, double parameterValue ){}
}

любая помощь в правильном направлении будет потрясающей. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Это довольно легко сделать:

public class Parameter<T>
{
    private string mParameterName;
    private T parameterValue; // runtime parameter

    public Parameter( string parameterName, T parameterValue )
    {
        this.mParameterName = parameterName;
        //this. is required below because the method parameter and class member
        //have the same name, so this. refers to the class member and without
        //refers to the method parameter.
        this.parameterValue = parameterValue;
    }
}

Здесь вы определяете аргумент универсального типа в имени класса: public class Parameter<T>, а затем можете использовать его в конструкторе. Вам не нужен новый конструктор для каждого типа.

0 голосов
/ 12 сентября 2018

Как правило, вы должны уточнить, какой тип T в классе, следующим образом

public class Parameter<T>
{
    private string mParameterName;
    private T parameterValue; // runtime parameter

    public Parameter( string parameterName, T parameterValue ){}
}

FIDDLE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...