Pair.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / xsp / System / Web / Extensions / Util / Pair.cs / 1 / Pair.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Web.Util { 
    using System; 

    // Generic Pair class.  Overrides Equals() and GetHashCode(), so it can be used as a dictionary key. 
    internal sealed class Pair {
        private readonly TFirst _first;
        private readonly TSecond _second;
 
        public Pair(TFirst first, TSecond second) {
            _first = first; 
            _second = second; 
        }
 
        public TFirst First {
            get {
                return _first;
            } 
        }
 
        public TSecond Second { 
            get {
                return _second; 
            }
        }

        public override bool Equals(object obj) { 
            if (obj == this) {
                return true; 
            } 

            Pair other = obj as Pair; 
            return (other != null) &&
                (((other._first == null) && (_first == null)) ||
                    ((other._first != null) && other._first.Equals(_first))) &&
                (((other._second == null) && (_second == null)) || 
                    ((other._second != null) && other._second.Equals(_second)));
        } 
 
        public override int GetHashCode() {
            int a = (_first == null) ? 0 : _first.GetHashCode(); 
            int b = (_second == null) ? 0 : _second.GetHashCode();
            return HashCodeCombiner.CombineHashCodes(a, b);
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Web.Util { 
    using System; 

    // Generic Pair class.  Overrides Equals() and GetHashCode(), so it can be used as a dictionary key. 
    internal sealed class Pair {
        private readonly TFirst _first;
        private readonly TSecond _second;
 
        public Pair(TFirst first, TSecond second) {
            _first = first; 
            _second = second; 
        }
 
        public TFirst First {
            get {
                return _first;
            } 
        }
 
        public TSecond Second { 
            get {
                return _second; 
            }
        }

        public override bool Equals(object obj) { 
            if (obj == this) {
                return true; 
            } 

            Pair other = obj as Pair; 
            return (other != null) &&
                (((other._first == null) && (_first == null)) ||
                    ((other._first != null) && other._first.Equals(_first))) &&
                (((other._second == null) && (_second == null)) || 
                    ((other._second != null) && other._second.Equals(_second)));
        } 
 
        public override int GetHashCode() {
            int a = (_first == null) ? 0 : _first.GetHashCode(); 
            int b = (_second == null) ? 0 : _second.GetHashCode();
            return HashCodeCombiner.CombineHashCodes(a, b);
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.

                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK