Open sandboxFocus

Class UnsafeStringBuilder

A class similar to StringBuilder, but implemented using unsafe C#.

Inheritance
UnsafeStringBuilder
Implements
Namespace: PostSharp.Patterns.Formatters
Assembly: PostSharp.Patterns.Common.dll
Syntax
public sealed class UnsafeStringBuilder : IDisposable
Remarks

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 char) of the current UnsafeStringBuilder.

IsDisposed

Gets a value indicating whether the current UnsafeStringBuilder has been disposed.

this[int]

Gets the char at a given position in the current UnsafeStringBuilder.

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 false, the Append method should return false without throwing an exception.

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 (true or false, literally) to the current UnsafeStringBuilder.

Append(byte)

Appends a byte (with decimal formatting) to the current UnsafeStringBuilder.

Append(char)

Appends one char to the current UnsafeStringBuilder.

Append(char*, int)

Appends an unmanaged array of char to the current UnsafeStringBuilder.

Append(char, char)

Appends two char to the current UnsafeStringBuilder.

Append(char, char, char)

Appends three char to the current UnsafeStringBuilder.

Append(char, char, char, char)

Appends four char to the current UnsafeStringBuilder.

Append(char, char, char, char, char)

Appends five char to the current UnsafeStringBuilder.

Append(char, int)

Appends the same char several times to the current UnsafeStringBuilder.

Append(char[])

Appends an array of char to the current UnsafeStringBuilder.

Append(char[], int, int)

Appends an array segment of char to the current UnsafeStringBuilder.

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 false, the last character of the string is removed and the string length is decreased by 1.

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.

See Also