2011-02-17 50 views
0

我在尋找一類表示併發事件, 例如: 在每個工作日的10:00那需要2個小時會談。等等。有沒有一個類同時擁有dateTime和Timespan?

我知道如何實現它我自己,我不知道是否有predifined類。

tnx!

+0

你能解釋一下你的問題嗎? – 2011-02-17 09:45:20

+2

嗨,你需要什麼?也許如果你描述你的用例,我們可以看到最適合的東西。 – 2011-02-17 09:45:35

+1

您可以創建自己的。 – 2011-02-17 09:45:42

回答

1

我會做這樣一類不可變,甚至一個結構。

您可以選擇開始/結束或開始/持續時間內部表示。對公衆API應該是不可見的。

如果你喜歡,你可以超載幾個操作符並覆蓋EqualsGetHashCode以獲得完整的值語義。

public class TimeInterval 
{ 
    private readonly DateTime _start; 
    private readonly DateTime _end; 

    public DateTime Start { get { return _start; } } 
    public DateTime End { get { return _end; } } 
    public TimeSpan Duration { get { return _end - _start; } } 

    public TimeInterval(DateTime start, DateTime end) 
    { 
     if(end.Kind != start.Kind) 
      throw new ArgumentException("Incompatible DateTimes"); 

     _start = start; 
     _end = end; 
    } 

    public TimeInterval(DateTime start, TimeSpan duration) 
    { 
     _start = start; 
     _end = start.Add(duration); 
    } 
} 
8

沒有,但這裏有一個帶回家:

public class DateTimeAndTimeSpan 
{ 
    public DateTime Time{get;set;} 
    public TimeSpan Duration{get;set;} 
} 
相關問題