// // System.Drawing.BindingMemberInfo.cs // // Author: // Dennis Hayes (dennish@raytek.com) // // (C) 2002/3 Ximian, Inc. http://www.ximian.com // //TODO: // 1) Add real values in constructor. // 2) Verify nocheck needed in GetHashCode. // 3) Verify GetHashCode returns decent and valid hash. using System; using System.Windows.Forms; namespace System.Windows.Forms { public struct BindingMemberInfo { private string bindingfield; private string bindingpath; private string bindingmember; // ----------------------- // Public Constructor // ----------------------- /// /// /// /// /// /// /// public BindingMemberInfo (string dataMember) { //TODO: Initilize with real values. bindingmember = (""); bindingfield = (""); bindingpath = (""); } // ----------------------- // Public Shared Members // ----------------------- /// /// Equality Operator /// /// /// /// Compares two BindingMemberInfo objects. The return value is /// based on the equivalence of the BindingMember, BindingPath, /// and BindingMember properties of the two objects. /// public static bool operator == (BindingMemberInfo bmi_a, BindingMemberInfo bmi_b) { return ((bmi_a.bindingfield == bmi_b.bindingfield) && (bmi_a.bindingpath == bmi_b.bindingpath)&& (bmi_a.bindingmember == bmi_b.bindingmember)); } /// /// Inequality Operator /// /// /// /// Compares two BindingMemberInfo objects. The return value is /// based on the equivalence of the BindingMember, BindingPath, /// and BindingMember properties of the two objects. /// public static bool operator != (BindingMemberInfo bmi_a, BindingMemberInfo bmi_b) { return ((bmi_a.bindingfield != bmi_b.bindingfield) || (bmi_a.bindingpath != bmi_b.bindingpath)|| (bmi_a.bindingmember != bmi_b.bindingmember)); } // ----------------------- // Public Instance Members // ----------------------- public string BindingField { get{ return bindingfield; } } public string BindingPath { get{ return bindingpath; } } public string BindingMember { get{ return bindingmember; } } /// /// Equals Method /// /// /// /// Checks equivalence of this BindingMemberInfo and another object. /// public override bool Equals (object otherObject) { if (!(otherObject is BindingMemberInfo)) return false; return (this == (BindingMemberInfo) otherObject); } /// /// GetHashCode Method /// /// /// /// Calculates a hashing value. /// public override int GetHashCode () { unchecked{ // MONOTODO: This should not be checked, remove unchecked, if redundant. return (int)( bindingfield.GetHashCode() ^ bindingmember.GetHashCode() ^ bindingpath.GetHashCode()); } } } }