2013-08-07 8 views
0

У меня есть функция, которой я передам анонимный объект, и в свою очередь мне нужно вернуть значение времени, отображающее значение в формате hh: mm. посмотрите ниже для моего фрагмента кода.формат времени, который извлекается из отражений, чтобы отображать только часы и минуты

public string GetTime(Object obj, string propName) 
{ 
    TimeSpan? time = obj.Gettype().GetProperty(propName).GetValue(obj, null); 

    return time.ToString(@"hh\:mm"); 
} 

Я получаю правильное значение и временные переменные и при попытке преобразовать в строку, чтобы она говорит никакая функции ToString не принимает 1 аргументы

Я даже пытался преобразовать с помощью TimeSpan.parse то это позволило мне преобразовать здесь, но это дает мне неправильные значения, как выход

вот мой TimeSpan синтаксический анализ:

return TimeSpan.Parse(time.ToString()).ToString(@"hh\:mm"); 

некоторые, как я хочу, чтобы получить чч: мм в виде строки, что совершенно точные значения. поэтому, пожалуйста, любая работа вокруг .........

ответ

1

Try:

public string GetTime(Object obj, string propName) 
{ 
    TimeSpan? time = obj.GetType().GetProperty(propName).GetValue(obj, null); 

    // The difference is here... If time has a value, then take it 
    // and format it, otherwise return an empty string. 
    return time.HasValue ? time.Value.ToString(@"hh\:mm") : string.Empty; 
} 

Хотя TimeSpan.ToString() имеет перегрузку вы хотите, то TimeSpan? не делает.