System.Xml.BufferBuilder.BufferBuilder.ToString C# (CSharp) Méthode

ToString() public méthode

public ToString ( int startIndex, int len ) : string
startIndex int
len int
Résultat string
        public string ToString( int startIndex, int len ) {
#if BUFFER_BUILDER_TRACING
            if ( s_TraceOutput != null ) {
                s_TraceOutput.WriteLine( "BufferBuilder.ToString( " + startIndex + ", " + len + " )" );
            }
#endif
            if ( startIndex < 0 || startIndex >= length ) {
                throw new ArgumentOutOfRangeException( "startIndex" );
            }
            if ( len < 0 || startIndex + len > length ) {
                throw new ArgumentOutOfRangeException( "len" );
            }

            if ( ( length <= MaxStringBuilderLength ) || ( buffersCount == 1 && lastBufferIndex == 0 ) ) {
                return ( stringBuilder != null ) ? stringBuilder.ToString( startIndex, len ) : string.Empty;
            }
            else {
                StringBuilder sb = new StringBuilder( len );
                if ( stringBuilder != null ) {
                    if ( startIndex < stringBuilder.Length ) {
                        if ( len < stringBuilder.Length ) {
                            return stringBuilder.ToString( startIndex, len );
                        }
                        else {
                            sb.Append( stringBuilder.ToString( startIndex, stringBuilder.Length ) );
                            startIndex = 0;
                        }
                    }
                    else {
                        startIndex -= stringBuilder.Length;
                    }
                }

                int i;
                for ( i = 0; i < buffersCount; i++ ) {
                    if ( startIndex < buffers[i].buffer.Length ) {
                        break;
                    }
                    startIndex -= buffers[i].buffer.Length;
                }
                if ( i < buffersCount ) {
                    int charsLeft = len;
                    for ( ; i < buffersCount && charsLeft > 0; i++ ) { 
                        char[] buf = buffers[i].buffer;
                        int copyCount = ( buf.Length < charsLeft ) ? buf.Length : charsLeft;
                        sb.Append( buf, startIndex, copyCount );
                        startIndex = 0;
                        charsLeft -= copyCount;
                    }
                }
                return sb.ToString();
            }
        }

Same methods

BufferBuilder.BufferBuilder::ToString ( ) : string