main
 1namespace jive
 2{
 3  public class NotificationMessage
 4  {
 5    public virtual string message { get; set; }
 6
 7    static public implicit operator string(NotificationMessage message)
 8    {
 9      return message.ToString();
10    }
11
12    static public implicit operator NotificationMessage(string message)
13    {
14      return new NotificationMessage {message = message};
15    }
16
17    public override string ToString()
18    {
19      return message;
20    }
21
22    public bool Equals(NotificationMessage obj)
23    {
24      if (ReferenceEquals(null, obj)) return false;
25      if (ReferenceEquals(this, obj)) return true;
26      return Equals(obj.message, message);
27    }
28
29    public override bool Equals(object obj)
30    {
31      if (ReferenceEquals(null, obj)) return false;
32      if (ReferenceEquals(this, obj)) return true;
33      if (obj.GetType() != typeof (NotificationMessage)) return false;
34      return Equals((NotificationMessage) obj);
35    }
36
37    public override int GetHashCode()
38    {
39      return (message != null ? message.GetHashCode() : 0);
40    }
41  }
42}