Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / BCL / System / IO / StringWriter.cs / 1 / StringWriter.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: StringWriter ** ** Purpose: For writing text to a string ** ** ===========================================================*/ using System; using System.Text; using System.Globalization; namespace System.IO { // This class implements a text writer that writes to a string buffer and allows // the resulting sequence of characters to be presented as a string. // [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public class StringWriter : TextWriter { private static UnicodeEncoding m_encoding=null; private StringBuilder _sb; private bool _isOpen; // Constructs a new StringWriter. A new StringBuilder is automatically // created and associated with the new StringWriter. public StringWriter() : this(new StringBuilder(), CultureInfo.CurrentCulture) { } public StringWriter(IFormatProvider formatProvider) : this(new StringBuilder(), formatProvider) { } // Constructs a new StringWriter that writes to the given StringBuilder. // public StringWriter(StringBuilder sb) : this(sb, CultureInfo.CurrentCulture) { } public StringWriter(StringBuilder sb, IFormatProvider formatProvider) : base(formatProvider) { if (sb==null) throw new ArgumentNullException("sb", Environment.GetResourceString("ArgumentNull_Buffer")); _sb = sb; _isOpen = true; } public override void Close() { Dispose(true); } protected override void Dispose(bool disposing) { // Do not destroy _sb, so that we can extract this after we are // done writing (similar to MemoryStream's GetBuffer & ToArray methods) _isOpen = false; base.Dispose(disposing); } public override Encoding Encoding { get { if (m_encoding==null) { m_encoding = new UnicodeEncoding(false, false); } return m_encoding; } } // Returns the underlying StringBuilder. This is either the StringBuilder // that was passed to the constructor, or the StringBuilder that was // automatically created. // public virtual StringBuilder GetStringBuilder() { return _sb; } // Writes a character to the underlying string buffer. // public override void Write(char value) { if (!_isOpen) __Error.WriterClosed(); _sb.Append(value); } // Writes a range of a character array to the underlying string buffer. // This method will write count characters of data into this // StringWriter from the buffer character array starting at position // index. // public override void Write(char[] buffer, int index, int count) { if (!_isOpen) __Error.WriterClosed(); if (buffer==null) throw new ArgumentNullException("buffer", Environment.GetResourceString("ArgumentNull_Buffer")); if (index < 0) throw new ArgumentOutOfRangeException("index", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum")); if (count < 0) throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum")); if (buffer.Length - index < count) throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen")); _sb.Append(buffer, index, count); } // Writes a string to the underlying string buffer. If the given string is // null, nothing is written. // public override void Write(String value) { if (!_isOpen) __Error.WriterClosed(); if (value != null) _sb.Append(value); } // Returns a string containing the characters written to this TextWriter // so far. // public override String ToString() { return _sb.ToString(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: StringWriter ** ** Purpose: For writing text to a string ** ** ===========================================================*/ using System; using System.Text; using System.Globalization; namespace System.IO { // This class implements a text writer that writes to a string buffer and allows // the resulting sequence of characters to be presented as a string. // [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public class StringWriter : TextWriter { private static UnicodeEncoding m_encoding=null; private StringBuilder _sb; private bool _isOpen; // Constructs a new StringWriter. A new StringBuilder is automatically // created and associated with the new StringWriter. public StringWriter() : this(new StringBuilder(), CultureInfo.CurrentCulture) { } public StringWriter(IFormatProvider formatProvider) : this(new StringBuilder(), formatProvider) { } // Constructs a new StringWriter that writes to the given StringBuilder. // public StringWriter(StringBuilder sb) : this(sb, CultureInfo.CurrentCulture) { } public StringWriter(StringBuilder sb, IFormatProvider formatProvider) : base(formatProvider) { if (sb==null) throw new ArgumentNullException("sb", Environment.GetResourceString("ArgumentNull_Buffer")); _sb = sb; _isOpen = true; } public override void Close() { Dispose(true); } protected override void Dispose(bool disposing) { // Do not destroy _sb, so that we can extract this after we are // done writing (similar to MemoryStream's GetBuffer & ToArray methods) _isOpen = false; base.Dispose(disposing); } public override Encoding Encoding { get { if (m_encoding==null) { m_encoding = new UnicodeEncoding(false, false); } return m_encoding; } } // Returns the underlying StringBuilder. This is either the StringBuilder // that was passed to the constructor, or the StringBuilder that was // automatically created. // public virtual StringBuilder GetStringBuilder() { return _sb; } // Writes a character to the underlying string buffer. // public override void Write(char value) { if (!_isOpen) __Error.WriterClosed(); _sb.Append(value); } // Writes a range of a character array to the underlying string buffer. // This method will write count characters of data into this // StringWriter from the buffer character array starting at position // index. // public override void Write(char[] buffer, int index, int count) { if (!_isOpen) __Error.WriterClosed(); if (buffer==null) throw new ArgumentNullException("buffer", Environment.GetResourceString("ArgumentNull_Buffer")); if (index < 0) throw new ArgumentOutOfRangeException("index", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum")); if (count < 0) throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum")); if (buffer.Length - index < count) throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen")); _sb.Append(buffer, index, count); } // Writes a string to the underlying string buffer. If the given string is // null, nothing is written. // public override void Write(String value) { if (!_isOpen) __Error.WriterClosed(); if (value != null) _sb.Append(value); } // Returns a string containing the characters written to this TextWriter // so far. // public override String ToString() { return _sb.ToString(); } } } // 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](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Expression.cs
- XslAst.cs
- FixedSOMPageElement.cs
- OleDbFactory.cs
- AuthenticationSection.cs
- httpapplicationstate.cs
- IdleTimeoutMonitor.cs
- ConfigurationStrings.cs
- SafeRegistryHandle.cs
- DataFormats.cs
- UniqueConstraint.cs
- TableCellAutomationPeer.cs
- TdsValueSetter.cs
- RoleServiceManager.cs
- CompositeKey.cs
- RequestCacheValidator.cs
- InstanceNormalEvent.cs
- Baml2006SchemaContext.cs
- PerformanceCountersElement.cs
- ClientConfigPaths.cs
- CloudCollection.cs
- WebPartsSection.cs
- StickyNoteHelper.cs
- DataPointer.cs
- ByteStack.cs
- ToolStripProgressBar.cs
- AbsoluteQuery.cs
- SqlParameterizer.cs
- NonSerializedAttribute.cs
- LambdaCompiler.Unary.cs
- DBSqlParserColumn.cs
- FileSystemInfo.cs
- TdsParserHelperClasses.cs
- CustomSignedXml.cs
- WsatServiceAddress.cs
- ThreadPoolTaskScheduler.cs
- TabletDeviceInfo.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs
- AppSettingsExpressionBuilder.cs
- FaultPropagationRecord.cs
- XPathDocumentNavigator.cs
- SharedPersonalizationStateInfo.cs
- MessageSmuggler.cs
- MouseOverProperty.cs
- SystemTcpStatistics.cs
- dbdatarecord.cs
- ObjectPropertyMapping.cs
- StrokeCollectionConverter.cs
- InvalidOleVariantTypeException.cs
- WorkflowInstanceProxy.cs
- SspiSafeHandles.cs
- DeferrableContentConverter.cs
- ProgressBarHighlightConverter.cs
- DesignerSerializationVisibilityAttribute.cs
- StructuredProperty.cs
- NativeMethods.cs
- CreateUserErrorEventArgs.cs
- EditCommandColumn.cs
- HtmlTableRow.cs
- DynamicMetaObjectBinder.cs
- GridItem.cs
- SoapSchemaImporter.cs
- Type.cs
- Storyboard.cs
- isolationinterop.cs
- ModelFactory.cs
- ModelTreeManager.cs
- TimeZoneInfo.cs
- TableCellAutomationPeer.cs
- ScriptMethodAttribute.cs
- CodeComment.cs
- ChannelToken.cs
- BorderGapMaskConverter.cs
- DiscoveryMessageProperty.cs
- SyndicationSerializer.cs
- LocalizationCodeDomSerializer.cs
- DataServiceConfiguration.cs
- PersonalizationProvider.cs
- _SecureChannel.cs
- CodeGenerator.cs
- KeyConstraint.cs
- DefaultSection.cs
- WebPartEditVerb.cs
- BitmapEffect.cs
- ReadOnlyDictionary.cs
- DiscoveryMessageSequence11.cs
- FixedTextSelectionProcessor.cs
- ListSourceHelper.cs
- SequenceRangeCollection.cs
- ProviderUtil.cs
- StringBlob.cs
- TextMessageEncoder.cs
- HttpServerVarsCollection.cs
- RijndaelManagedTransform.cs
- ComboBoxAutomationPeer.cs
- TemplateField.cs
- CodeSnippetExpression.cs
- DataTableTypeConverter.cs
- TimeSpan.cs
- ComponentChangedEvent.cs