Прямо к коду:Использование метода парсера с общим типом?
class ArithmeticExpressionParser<T> : Parser
{
T num1, num2;
/* ......... */
void ParseNumber()
{
string temp = String.Empty;
while (char.IsDigit(PeekNextToken()))
{
GetNextToken();
temp += Token;
}
num1 = T.Parse(temp); // <<< the problem
}
В принципе, если бы я был используя int
или double
я бы просто использовать int.Parse
и т.д. Я попытался литья num1 = (T)temp;
, который не работал. Как я могу это сделать без необходимости писать пользовательскую функцию string
до T
?
Он чувствует, как вы хотите '' IParsable' но IConvertible' является более широким (и существует) – Jodrell