private System.Nullable ReadChar( System.IO.StringReader reader, System.Nullable escape, System.Char @break, System.Boolean readNextOnBreak ) { if ( null == reader ) { throw new System.ArgumentNullException( "reader" ); } var p = reader.Peek(); if ( -1 == p ) { return null; } var c = System.Convert.ToChar( reader.Read() ); if ( escape.HasValue && escape.Value.Equals( c ) ) { return System.Convert.ToChar( reader.Read() ); } if ( @break.Equals( c ) ) { if ( readNextOnBreak ) { p = reader.Peek(); if ( -1 == p ) { return null; } else if ( @break.Equals( System.Convert.ToChar( p ) ) ) { return System.Convert.ToChar( reader.Read() ); } } return null; } return c; }