Я использую Camera Activity для захвата изображения. Я вызываю его с дополнительным параметром MediaStore.EXTRA_OUTPUT . Изображение правильно сохранено по указанному пути, поместите его также в папку галереи, поэтому я могу просмотреть изображение в «Галерее» {public void TryParse (string p_value) {значение T; Parser.TryParse (p_value, выходное значение); // Что-нибудь сделать с ...
У меня есть следующий класс C #:
public class MyType<T>
{
public void TryParse(string p_value)
{
T value ;
Parser.TryParse(p_value, out value);
// Do something with value
}
}
Дело в том, чтобы вызвать правильный метод Parser.TryParse, в зависимости от универсального типа T.
Здесь используется следующий статический класс:
static public class Parser
{
static public void TryParse(string p_intput, out object p_output)
{
// Do something and return the right value
}
static public void TryParse(string p_intput, out double p_output)
{
// Do something and return the right value
}
static public void TryParse(string p_intput, out int p_output)
{
// Do something and return the right value
}
}
Я ожидал, что это сработает: в худшем случае будет вызван "объект" TryParse. Вместо этого у меня две ошибки компиляции:
Вопрос 1: Я не понимаю, почему это не работает: я могу быть наивным, но не все объекты C # должны быть производными от «объекта» ? Почему T нельзя преобразовать в объект?
Вопрос 2: Как я могу отправить метод с универсальным типом T в правильные неуниверсальные методы (например, MyType
вызывает правильный Parser.TryParse
в соответствии с правильным типом T)?
Вопрос был отредактирован, чтобы отразить исходную цель вопроса (как написано в заголовке: Как направить вызов универсального метода C # в вызовы специализированных методов )