main
1using System;
2
3namespace solidware.financials.windows.ui.views.controls
4{
5 public interface IColumn
6 {
7 string Title { get; }
8 }
9
10 public class Column<T> : IEquatable<Column<T>>, IColumn
11 {
12 public string Title { get; private set; }
13
14 public Column(string title)
15 {
16 Title = title;
17 }
18
19 public override string ToString()
20 {
21 return Title;
22 }
23
24 static public implicit operator Column<T>(string title)
25 {
26 return new Column<T>(title);
27 }
28
29 static public implicit operator string(Column<T> column)
30 {
31 return column.Title;
32 }
33
34 public bool Equals(Column<T> other)
35 {
36 if (ReferenceEquals(null, other)) return false;
37 if (ReferenceEquals(this, other)) return true;
38 return Equals(other.Title, Title);
39 }
40
41 public override bool Equals(object obj)
42 {
43 if (ReferenceEquals(null, obj)) return false;
44 if (ReferenceEquals(this, obj)) return true;
45 if (obj.GetType() != typeof (Column<T>)) return false;
46 return Equals((Column<T>) obj);
47 }
48
49 public override int GetHashCode()
50 {
51 return (Title != null ? Title.GetHashCode() : 0);
52 }
53
54 static public bool operator ==(Column<T> left, Column<T> right)
55 {
56 return Equals(left, right);
57 }
58
59 static public bool operator !=(Column<T> left, Column<T> right)
60 {
61 return !Equals(left, right);
62 }
63 }
64}