A class similar to StringBuilder, but implemented using unsafe C#.
Implements
Namespace: PostSharp.Patterns.Formatters
Assembly: PostSharp.Patterns.Common.dll
Syntax
public sealed class UnsafeStringBuilder : IDisposableRemarks
Custom formatters, Format(UnsafeStringBuilder, FormattingRole) and Write(UnsafeStringBuilder, T), write into this class.
Unlike StringBuilder, it has a fixed capacity: when the buffer is full, the Append methods throw an
OverflowException or return false, depending on the ThrowOnOverflow property.
Constructors
| Name | Description |
|---|---|
| UnsafeStringBuilder(char*, int, bool) | Initializes a new instance of the UnsafeStringBuilder class with a pre-allocated buffer. |
| UnsafeStringBuilder(int, bool) | Initializes a new instance of the UnsafeStringBuilder class and allocates a new buffer. |
Properties
| Name | Description |
|---|---|
| Buffer | Gets a pointer to the unmanaged buffer of the current UnsafeStringBuilder. |
| Capacity | Gets the capacity (number of |
| IsDisposed | Gets a value indicating whether the current UnsafeStringBuilder has been disposed. |
| this[int] | Gets the |
| Length | Gets the current number of characters in the current UnsafeStringBuilder. |
| ThrowOnOverflow | Gets a value indicating whether an OverflowException should be thrown when
the buffer capacity is insufficient. If the value is |
| Version | Gets the version of the current UnsafeStringBuilder. The value of this property is incremented every time the current object is reused, that is, when the Clear() method is called. |
Methods
| Name | Description |
|---|---|
| Append(in CharSpan) | Appends a CharSpan to the current UnsafeStringBuilder. |
| Append(UnsafeString) | Appends an UnsafeString to the current UnsafeStringBuilder. |
| Append(UnsafeStringBuilder) | Appends the current value of an UnsafeStringBuilder to the current UnsafeStringBuilder. |
| Append(bool) | Appends a bool ( |
| Append(byte) | Appends a byte (with decimal formatting) to the current UnsafeStringBuilder. |
| Append(char) | Appends one |
| Append(char*, int) | Appends an unmanaged array of |
| Append(char, char) | Appends two |
| Append(char, char, char) | Appends three |
| Append(char, char, char, char) | Appends four |
| Append(char, char, char, char, char) | Appends five |
| Append(char, int) | Appends the same |
| Append(char[]) | Appends an array of |
| Append(char[], int, int) | Appends an array segment of |
| Append(short) | Appends a short (with decimal formatting) to the current UnsafeStringBuilder. |
| Append(int) | Appends an int (with decimal formatting) to the current UnsafeStringBuilder. |
| Append(long) | Appends a long (with decimal formatting) to the current UnsafeStringBuilder. |
| Append(sbyte) | Appends an sbyte (with decimal formatting) to the current UnsafeStringBuilder. |
| Append(string) | Appends a string to the current UnsafeStringBuilder. |
| Append(string, int, int) | Appends a part of a string to the current UnsafeStringBuilder. |
| Append(ushort) | Appends a ushort (with decimal formatting) to the current UnsafeStringBuilder. |
| Append(uint) | Appends a uint (with decimal formatting) to the current UnsafeStringBuilder. |
| Append(ulong) | Appends a ulong (with decimal formatting) to the current UnsafeStringBuilder. |
| Clear() | Clears the current UnsafeStringBuilder so it can be reused to build a new string. |
| Dispose() | |
| ~UnsafeStringBuilder() | |
| SetNullTermination() | Appends a null character at the end of the current string, without affecting the string length.
In case of overflow, if ThrowOnOverflow is |
| Substring(int) | Returns the substring starting at a given index and ending at the end of the current string. |
| Substring(int, int) | Returns the substring starting at a given index and having a specified length. |
| ToString() | |
| ToUnsafeString() | Gets an UnsafeString that provides read-only access to the current UnsafeStringBuilder. |
| Truncate(int) | Truncates the string to a maximum length. |