String Constructor (SByte*, Int32, Int32, Encoding)
Assembly: mscorlib (in mscorlib.dll)
[CLSCompliantAttribute(false)] public: String( signed char* value, int startIndex, int length, Encoding^ enc )
Parameters
- value
- Type: System::SByte*
A pointer to an array of 8-bit signed integers.
- startIndex
- Type: System::Int32
The starting position within value.
- length
- Type: System::Int32
The number of characters within value to use.
- enc
- Type: System.Text::Encoding
An object that specifies how the array referenced by value is encoded. If enc is nullptr, ANSI encoding is assumed.
| Exception | Condition |
|---|---|
| ArgumentNullException | value is nullptr. |
| ArgumentOutOfRangeException | startIndex or length is less than zero. -or- The address specified by value + startIndex is too large for the current platform; that is, the address calculation overflowed. -or- The length of the new string to initialize is too large to allocate. |
| ArgumentException | The address specified by value + startIndex is less than 64K. -or- A new instance of String could not be initialized using value, assuming value is encoded as specified by enc. |
| AccessViolationException | value, startIndex, and length collectively specify an invalid address. |
The value parameter is assumed to point to a signed byte array representing a string encoded as specified by the enc parameter. The enc parameter is an System.Text::Encoding object that represents any valid encoding method. It must represent the same method of encoding used to create the byte array or the decoded string will not necessarily be identical to the original string.
If length is zero, the new instance is initialized to the empty string ("").
This constructor processes characters from value starting at startIndex and ending at (startIndex + length - 1).
If the specified range is outside of the memory allocated for the sequence of characters, the behavior of this constructor is system dependent. For example, such a situation might cause an access violation.
In C#, this constructor is defined only in the context of unsafe code.
The following simple example demonstrates how you can create an instance of a UTF-8 String with this constructor.
char asciiChars[6] = {0x51,0x52,0x53,0x54,0x54,0x56}; char * pstr6 = &asciiChars[ 0 ]; UTF8Encoding^ encoding = gcnew UTF8Encoding( true,true ); String^ utfeightstring = gcnew String( pstr6,0,sizeof(asciiChars),encoding ); // prints "QRSTTV" Console::WriteLine( String::Concat( "The UTF8 String is ", utfeightstring ) );
- SecurityCriticalAttribute
requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.