// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. // // // This file was generated, please do not edit it directly. // // Please see MilCodeGen.html for more information. // // These types are aliased to match the unamanaged names used in interop namespace System.Windows { [Serializable] partial struct Point : IFormattable { //------------------------------------------------------ // // Public Methods // //------------------------------------------------------ #region Public Methods /// /// Compares two Point instances for exact equality. /// Note that double values can acquire error when operated upon, such that /// an exact comparison between two values which are logically equal may fail. /// Furthermore, using this equality operator, Double.NaN is not equal to itself. /// /// /// bool - true if the two Point instances are exactly equal, false otherwise /// /// The first Point to compare /// The second Point to compare public static bool operator ==(Point point1, Point point2) { return point1.X == point2.X && point1.Y == point2.Y; } /// /// Compares two Point instances for exact inequality. /// Note that double values can acquire error when operated upon, such that /// an exact comparison between two values which are logically equal may fail. /// Furthermore, using this equality operator, Double.NaN is not equal to itself. /// /// /// bool - true if the two Point instances are exactly unequal, false otherwise /// /// The first Point to compare /// The second Point to compare public static bool operator !=(Point point1, Point point2) { return !(point1 == point2); } /// /// Compares two Point instances for object equality. In this equality /// Double.NaN is equal to itself, unlike in numeric equality. /// Note that double values can acquire error when operated upon, such that /// an exact comparison between two values which /// are logically equal may fail. /// /// /// bool - true if the two Point instances are exactly equal, false otherwise /// /// The first Point to compare /// The second Point to compare public static bool Equals(Point point1, Point point2) { return point1.X.Equals(point2.X) && point1.Y.Equals(point2.Y); } /// /// Equals - compares this Point with the passed in object. In this equality /// Double.NaN is equal to itself, unlike in numeric equality. /// Note that double values can acquire error when operated upon, such that /// an exact comparison between two values which /// are logically equal may fail. /// /// /// bool - true if the object is an instance of Point and if it's equal to "this". /// /// The object to compare to "this" public override bool Equals(object o) { if ((null == o) || !(o is Point)) { return false; } Point value = (Point)o; return Point.Equals(this, value); } /// /// Equals - compares this Point with the passed in object. In this equality /// Double.NaN is equal to itself, unlike in numeric equality. /// Note that double values can acquire error when operated upon, such that /// an exact comparison between two values which /// are logically equal may fail. /// /// /// bool - true if "value" is equal to "this". /// /// The Point to compare to "this" public bool Equals(Point value) { return Point.Equals(this, value); } /// /// Returns the HashCode for this Point /// /// /// int - the HashCode for this Point /// public override int GetHashCode() { // Perform field-by-field XOR of HashCodes return X.GetHashCode() ^ Y.GetHashCode(); } #endregion Public Methods //------------------------------------------------------ // // Public Properties // //------------------------------------------------------ #region Public Properties /// /// X - double. Default value is 0. /// public double X { get { return _x; } set { _x = value; } } /// /// Y - double. Default value is 0. /// public double Y { get { return _y; } set { _y = value; } } #endregion Public Properties //------------------------------------------------------ // // Protected Methods // //------------------------------------------------------ //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ //------------------------------------------------------ // // Internal Properties // //------------------------------------------------------ #region Internal Properties /// /// Creates a string representation of this object based on the current culture. /// /// /// A string representation of this object. /// public override string ToString() { // Delegate to the internal method which implements all ToString calls. return ConvertToString(null /* format string */, null /* format provider */); } /// /// Creates a string representation of this object based on the IFormatProvider /// passed in. If the provider is null, the CurrentCulture is used. /// /// /// A string representation of this object. /// public string ToString(IFormatProvider provider) { // Delegate to the internal method which implements all ToString calls. return ConvertToString(null /* format string */, provider); } /// /// Creates a string representation of this object based on the format string /// and IFormatProvider passed in. /// If the provider is null, the CurrentCulture is used. /// See the documentation for IFormattable for more information. /// /// /// A string representation of this object. /// string IFormattable.ToString(string format, IFormatProvider provider) { // Delegate to the internal method which implements all ToString calls. return ConvertToString(format, provider); } /// /// Creates a string representation of this object based on the format string /// and IFormatProvider passed in. /// If the provider is null, the CurrentCulture is used. /// See the documentation for IFormattable for more information. /// /// /// A string representation of this object. /// internal string ConvertToString(string format, IFormatProvider provider) { // Helper to get the numeric list separator for a given culture. const char separator = ','; return String.Format(provider, "{1:" + format + "}{0}{2:" + format + "}", separator, _x, _y); } #endregion Internal Properties //------------------------------------------------------ // // Dependency Properties // //------------------------------------------------------ //------------------------------------------------------ // // Internal Fields // //------------------------------------------------------ #region Internal Fields internal double _x; internal double _y; #endregion Internal Fields #region Constructors //------------------------------------------------------ // // Constructors // //------------------------------------------------------ #endregion Constructors } }