BindingMemberInfo.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. //
  2. // System.Drawing.BindingMemberInfo.cs
  3. //
  4. // Author:
  5. // Dennis Hayes ([email protected])
  6. //
  7. // (C) 2002 Ximian, Inc. http://www.ximian.com
  8. //
  9. //TODO:
  10. // 1) Add real values in constructor.
  11. // 2) Verify nocheck needed in GetHashCode.
  12. // 3) Verify GetHashCode returns decent and valid hash.
  13. using System;
  14. using System.Windows.Forms;
  15. namespace System.Windows.Forms {
  16. public struct BindingMemberInfo {
  17. private string bindingfield;
  18. private string bindingpath;
  19. private string bindingmember;
  20. // -----------------------
  21. // Public Constructor
  22. // -----------------------
  23. /// <summary>
  24. ///
  25. /// </summary>
  26. ///
  27. /// <remarks>
  28. ///
  29. /// </remarks>
  30. public BindingMemberInfo (string dataMember)
  31. {
  32. //TODO: Initilize with real values.
  33. bindingmember = ("");
  34. bindingfield = ("");
  35. bindingpath = ("");
  36. }
  37. // -----------------------
  38. // Public Shared Members
  39. // -----------------------
  40. /// <summary>
  41. /// Equality Operator
  42. /// </summary>
  43. ///
  44. /// <remarks>
  45. /// Compares two BindingMemberInfo objects. The return value is
  46. /// based on the equivalence of the BindingMember, BindingPath,
  47. /// and BindingMember properties of the two objects.
  48. /// </remarks>
  49. public static bool operator == (BindingMemberInfo bmi_a,
  50. BindingMemberInfo bmi_b) {
  51. return ((bmi_a.bindingfield == bmi_b.bindingfield) &&
  52. (bmi_a.bindingpath == bmi_b.bindingpath)&&
  53. (bmi_a.bindingmember == bmi_b.bindingmember));
  54. }
  55. /// <summary>
  56. /// Inequality Operator
  57. /// </summary>
  58. ///
  59. /// <remarks>
  60. /// Compares two BindingMemberInfo objects. The return value is
  61. /// based on the equivalence of the BindingMember, BindingPath,
  62. /// and BindingMember properties of the two objects.
  63. /// </remarks>
  64. public static bool operator != (BindingMemberInfo bmi_a,
  65. BindingMemberInfo bmi_b) {
  66. return ((bmi_a.bindingfield != bmi_b.bindingfield) ||
  67. (bmi_a.bindingpath != bmi_b.bindingpath)||
  68. (bmi_a.bindingmember != bmi_b.bindingmember));
  69. }
  70. // -----------------------
  71. // Public Instance Members
  72. // -----------------------
  73. public string BindingField {
  74. get{
  75. return bindingfield;
  76. }
  77. }
  78. public string BindingPath {
  79. get{
  80. return bindingpath;
  81. }
  82. }
  83. public string BindingMember {
  84. get{
  85. return bindingmember;
  86. }
  87. }
  88. /// <summary>
  89. /// Equals Method
  90. /// </summary>
  91. ///
  92. /// <remarks>
  93. /// Checks equivalence of this BindingMemberInfo and another object.
  94. /// </remarks>
  95. public override bool Equals (object obj)
  96. {
  97. if (!(obj is BindingMemberInfo))
  98. return false;
  99. return (this == (BindingMemberInfo) obj);
  100. }
  101. /// <summary>
  102. /// GetHashCode Method
  103. /// </summary>
  104. ///
  105. /// <remarks>
  106. /// Calculates a hashing value.
  107. /// </remarks>
  108. public override int GetHashCode ()
  109. {
  110. unchecked{// MONOTODO: This should not be checked, remove unchecked, if redundant.
  111. return (int)( bindingfield.GetHashCode() ^ bindingmember.GetHashCode() ^ bindingpath.GetHashCode());
  112. }
  113. }
  114. /// <summary>
  115. /// ToString Method
  116. /// </summary>
  117. ///
  118. /// <remarks>
  119. /// Formats the BindingMemberInfo as a string.
  120. /// </remarks>
  121. public override string ToString ()
  122. {
  123. return String.Format ("[{0},{1},{2}]", bindingpath, bindingfield, bindingmember);
  124. }
  125. }
  126. }