ThrowOnMultipleAssignment.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / infocard / Client / System / IdentityModel / Selectors / ThrowOnMultipleAssignment.cs / 1305376 / ThrowOnMultipleAssignment.cs

                            //------------------------------------------------------------------------------ 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------------------------
namespace System.IdentityModel.Selectors
{ 
    using System;
 
    using Microsoft.InfoCards.Diagnostics; 
    using IDT=Microsoft.InfoCards.Diagnostics.InfoCardTrace;
 
    //
    // Summary:
    //  This class throws an Argument exception if an attempt is made to assign a non-null
    //  value to the Value property more than once. 
    //
    class ThrowOnMultipleAssignment 
    { 

        string m_errorString; 
        T m_value;

        public T Value
        { 
            get { return m_value; }
            set 
            { 
                if( null != m_value && null != value )
                { 
                    throw IDT.ThrowHelperArgument( m_errorString );
                }
                else if( null == m_value )
                { 
                    m_value = value;
                } 
            } 
        }
 
        //
        // Parameters:
        //  errorString  - If Value gets assigned to more than once an argument exception will be thrown with this
        //                 string as the Exception string. 
        //
        public ThrowOnMultipleAssignment( string errorString ) 
        { 

            IDT.DebugAssert( !String.IsNullOrEmpty( errorString ), "Must have an error string" ); 

            m_errorString = errorString;
        }
    } 
}
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------------------------
namespace System.IdentityModel.Selectors
{ 
    using System;
 
    using Microsoft.InfoCards.Diagnostics; 
    using IDT=Microsoft.InfoCards.Diagnostics.InfoCardTrace;
 
    //
    // Summary:
    //  This class throws an Argument exception if an attempt is made to assign a non-null
    //  value to the Value property more than once. 
    //
    class ThrowOnMultipleAssignment 
    { 

        string m_errorString; 
        T m_value;

        public T Value
        { 
            get { return m_value; }
            set 
            { 
                if( null != m_value && null != value )
                { 
                    throw IDT.ThrowHelperArgument( m_errorString );
                }
                else if( null == m_value )
                { 
                    m_value = value;
                } 
            } 
        }
 
        //
        // Parameters:
        //  errorString  - If Value gets assigned to more than once an argument exception will be thrown with this
        //                 string as the Exception string. 
        //
        public ThrowOnMultipleAssignment( string errorString ) 
        { 

            IDT.DebugAssert( !String.IsNullOrEmpty( errorString ), "Must have an error string" ); 

            m_errorString = errorString;
        }
    } 
}
 

// 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