SecureString.InsertAt(Int32, Char) Метод

Определение

Вставляет знак в заданную индексом позицию защищенной строки.

public void InsertAt (int index, char c);
[System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions]
public void InsertAt (int index, char c);

Параметры

index
Int32

Индекс позиции вставки параметра c.

c
Char

Вставляемый знак.

Атрибуты

Исключения

Защищенная строка уже удалена.

Данная защищенная строка доступна только для чтения.

Значение index менее нуля или более длины защищенной строки.

-или-

При выполнении этой операции длина защищенной строки превысит 65 536 символов.

Произошла ошибка при защите значения этой защищенной строки или снятии с него защиты.

Примеры

В следующем примере показано, как AppendCharметоды , InsertAt, RemoveAt, SetAtи Clear влияют на значение SecureString объекта .

using System;
using System.Security;

class Example
{
    public static void Main()
    {
       string msg = "The curent length of the SecureString object: {0}\n";
       Console.WriteLine("1) Instantiate the SecureString object.");
       SecureString ss = new SecureString();
       Console.WriteLine(msg, ss.Length);

       Console.WriteLine("2) Append 'a' to the value.");
       ss.AppendChar('a');
       Console.WriteLine(msg, ss.Length);

       Console.WriteLine("3) Append 'X' to the value.");
       ss.AppendChar('X');
       Console.WriteLine(msg, ss.Length);

       Console.WriteLine("4) Append 'c' to the value.");
       ss.AppendChar('c');
       Console.WriteLine(msg, ss.Length);

       Console.WriteLine("5) Insert 'd' at the end of the value.");
       ss.InsertAt(ss.Length, 'd');
       Console.WriteLine(msg, ss.Length);

       Console.WriteLine("6) Remove the last character ('d') from the value.");
       ss.RemoveAt(3);
       Console.WriteLine(msg, ss.Length);

       Console.WriteLine("7) Set the second character of the value to 'b'.");
       ss.SetAt(1, 'b');
       Console.WriteLine(msg, ss.Length);

       Console.WriteLine("8) Delete the value of the SecureString object:");
       ss.Clear();
       Console.WriteLine(msg, ss.Length);

       ss.Dispose();
    }
}
// The example displays the following output:
//       1) Instantiate the SecureString object.
//       The curent length of the SecureString object: 0
//
//       2) Append 'a' to the value.
//       The curent length of the SecureString object: 1
//
//       3) Append 'X' to the value.
//       The curent length of the SecureString object: 2
//
//       4) Append 'c' to the value.
//       The curent length of the SecureString object: 3
//
//       5) Insert 'd' at the end of the value.
//       The curent length of the SecureString object: 4
//
//       6) Remove the last character ('d') from the value.
//       The curent length of the SecureString object: 3
//
//       7) Set the second character of the value to 'b'.
//       The curent length of the SecureString object: 3
//
//       8) Delete the value of the SecureString object:
//       The curent length of the SecureString object: 0

Комментарии

Индекс отсчитывается от нуля; Первый символ в этой безопасной строке находится в нулевой позиции индекса.

Если в реализации используется механизм защиты, например шифрование, значение защищенной строки, если таковое имеется, не защищено; c вставляется в указанную позицию индекса; затем новое значение повторно защищено. Метод InsertAt возвращает те же результаты, что AppendChar и метод , который вставляет символ в конец безопасной строки, если index параметр имеет InsertAt длину этого экземпляра.

Применяется к

Өнім Нұсқалар
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1