ValidationResult.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Controls / ValidationResult.cs / 1 / ValidationResult.cs

                            //---------------------------------------------------------------------------- 
//
// 
//    Copyright (C) 2003 by Microsoft Corporation.  All rights reserved.
//  
//
// 
// Description: 
//      A ValidationResult is the result of call to ValidationRule.Validate
// 
// See specs at [....]/connecteddata/M5%20Specs/Validation.mht
//
// History:
//  5/3/2004       [....]: created. 
//
//--------------------------------------------------------------------------- 
 

using System; 

namespace System.Windows.Controls
{
    ///  
    /// A ValidationResult is the result of call to ValidationRule.Validate
    ///  
    public class ValidationResult 
    {
 
        /// 
        /// Constructor
        /// 
        public ValidationResult(bool isValid, object errorContent) 
        {
            _isValid = isValid; 
            _errorContent = errorContent; 
        }
 
        /// 
        ///     Whether or not the ValidationRule that was checked is valid.
        /// 
        public bool IsValid 
        {
            get 
            { 
                return _isValid;
            } 
        }

        /// 
        ///     Additional information regarding the cause of the invalid 
        ///     state of the binding that was just checked.
        ///  
        public object ErrorContent 
        {
            get 
            {
                return _errorContent;
            }
        } 

        ///  
        ///     Returns a valid ValidationResult 
        /// 
        public static ValidationResult ValidResult 
        {
            get
            {
                return s_valid; 
            }
        } 
 
        /// 
        ///     Compares the parameters for value equality 
        /// 
        /// left operand
        /// right operand
        /// true if the values are equal 
        public static bool operator == (ValidationResult left, ValidationResult right)
        { 
            return Object.Equals(left, right); 
        }
 
        /// 
        ///     Compares the parameters for value inequality
        /// 
        /// left operand 
        /// right operand
        /// true if the values are not equal 
        public static bool operator != (ValidationResult left, ValidationResult right) 
        {
            return !Object.Equals(left, right); 
        }

        /// 
        ///     By-value comparison of ValidationResult 
        /// 
        ///  
        /// This method is also used indirectly from the operator overrides. 
        /// 
        /// ValidationResult to be compared against this ValidationRule 
        /// true if obj is ValidationResult and has the same values
        public override bool Equals(object obj)
        {
            // A cheaper alternative to Object.ReferenceEquals() is used here for better perf 
            if (obj == (object)this)
            { 
                return true; 
            }
            else 
            {
                ValidationResult vr = obj as ValidationResult;
                if (vr != null)
                { 
                    return (IsValid == vr.IsValid) && (ErrorContent == vr.ErrorContent);
                } 
            } 

            return false; 
        }

        /// 
        ///     Hash function for ValidationResult 
        /// 
        /// hash code for the current ValidationResult 
        public override int GetHashCode() 
        {
            return IsValid.GetHashCode() ^ ((ErrorContent == null) ? int.MinValue : ErrorContent).GetHashCode(); 
        }

        private bool _isValid;
        private object _errorContent; 

        private static readonly ValidationResult s_valid = new ValidationResult(true, null); 
    } 

} 


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

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