Прочитать на английском

Поделиться через


ArrayTypeMismatchException Конструкторы

Определение

Инициализирует новый экземпляр класса ArrayTypeMismatchException.

Перегрузки

ArrayTypeMismatchException()

Инициализирует новый экземпляр класса ArrayTypeMismatchException.

ArrayTypeMismatchException(String)

Инициализирует новый экземпляр класса ArrayTypeMismatchException с указанным сообщением об ошибке.

ArrayTypeMismatchException(SerializationInfo, StreamingContext)
Устаревшие..

Инициализирует новый экземпляр класса ArrayTypeMismatchException с сериализованными данными.

ArrayTypeMismatchException(String, Exception)

Инициализирует новый экземпляр класса ArrayTypeMismatchException указанным сообщением об ошибке и ссылкой на внутреннее исключение, вызвавшее данное исключение.

ArrayTypeMismatchException()

Исходный код:
ArrayTypeMismatchException.cs
Исходный код:
ArrayTypeMismatchException.cs
Исходный код:
ArrayTypeMismatchException.cs

Инициализирует новый экземпляр класса ArrayTypeMismatchException.

C#
public ArrayTypeMismatchException ();

Примеры

В следующем примере демонстрируется конструктор ArrayTypeMismatchException ArrayTypeMismatchException() класса . Он содержит функцию, которая принимает два массива в качестве аргументов и проверяет, относятся ли два массива к одному типу. Если массивы имеют разные типы, создается новый ArrayTypeMismatchException и затем перехватывается в вызывающем методе.

C#
using System;

public class ArrayTypeMismatchConst
{
    public void CopyArray(Array myArray, Array myArray1)
    {
        string typeArray1 = myArray.GetType().ToString();
        string typeArray2 = myArray1.GetType().ToString();
        // Check whether the two arrays are of same type or not.
        if (typeArray1 == typeArray2)
        {
            // Copy the values from one array to another.
            myArray.SetValue("Name: " + myArray1.GetValue(0), 0);
            myArray.SetValue("Name: " + myArray1.GetValue(1), 1);
        }
        else
        {
            // Throw an exception of type 'ArrayTypeMismatchException'.
            throw new ArrayTypeMismatchException();
        }
    }
    static void Main()
    {
        try
        {
            string[] myStringArray = new string[2];
            myStringArray.SetValue("Jones", 0);
            myStringArray.SetValue("John", 1);

            int[] myIntArray = new int[2];
            ArrayTypeMismatchConst myArrayType = new();
            myArrayType.CopyArray(myStringArray, myIntArray);
        }
        catch (ArrayTypeMismatchException e)
        {
            Console.WriteLine("The Exception is :" + e);
        }
    }
}

Комментарии

Этот конструктор инициализирует Message свойство нового экземпляра системным сообщением, описывающим ошибку, например "Тип исходного массива не может быть назначен типу массива назначения". В этом сообщении учитывается текущий язык и региональные параметры системы.

В следующей таблице показаны первоначальные значения свойств для экземпляра ArrayTypeMismatchException.

Свойство Значение
InnerException Пустая ссылка (Nothing в Visual Basic).
Message Строка локализованного сообщения об ошибке.

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

ArrayTypeMismatchException(String)

Исходный код:
ArrayTypeMismatchException.cs
Исходный код:
ArrayTypeMismatchException.cs
Исходный код:
ArrayTypeMismatchException.cs

Инициализирует новый экземпляр класса ArrayTypeMismatchException с указанным сообщением об ошибке.

C#
public ArrayTypeMismatchException (string message);
C#
public ArrayTypeMismatchException (string? message);

Параметры

message
String

Строка String, описывающая ошибку.

Примеры

В следующем примере демонстрируется конструктор ArrayTypeMismatchException ArrayTypeMismatchException(String) класса . Он содержит функцию, которая принимает два массива в качестве аргументов и проверяет, относятся ли два массива к одному типу. Если массивы имеют разные типы, создается новый ArrayTypeMismatchException и затем перехватывается в вызывающем методе.

C#
using System;

public class ArrayTypeMismatchConst2
{
    public void CopyArray(Array myArray, Array myArray1)
    {
        string typeArray1 = myArray.GetType().ToString();
        string typeArray2 = myArray1.GetType().ToString();
        // Check whether the two arrays are of same type or not.
        if (typeArray1 == typeArray2)
        {
            // Copies the values from one array to another.
            myArray.SetValue("Name: " + myArray1.GetValue(0), 0);
            myArray.SetValue("Name: " + myArray1.GetValue(1), 1);
        }
        else
        {
            // Throw an exception of type 'ArrayTypeMismatchException' with a message string as parameter.
            throw new ArrayTypeMismatchException("The Source and destination arrays are not of same type.");
        }
    }

    static void Main()
    {
        try
        {
            string[] myStringArray = new string[2];
            myStringArray.SetValue("Jones", 0);
            myStringArray.SetValue("John", 1);
            int[] myIntArray = new int[2];
            ArrayTypeMismatchConst2 myArrayType = new();
            myArrayType.CopyArray(myStringArray, myIntArray);
        }
        catch (ArrayTypeMismatchException e)
        {
            Console.WriteLine("The Exception Message is : " + e.Message);
        }
    }
}

Комментарии

Содержимое параметра message должно быть понятно пользователям. Для гарантированной локализации этой строки для текущей системной культуры необходимы сведения о том, кто вызывает этот конструктор.

В следующей таблице показаны первоначальные значения свойств для экземпляра ArrayTypeMismatchException.

Свойство Значение
InnerException Пустая ссылка (Nothing в Visual Basic).
Message Строка сообщения об ошибке.

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

ArrayTypeMismatchException(SerializationInfo, StreamingContext)

Исходный код:
ArrayTypeMismatchException.cs
Исходный код:
ArrayTypeMismatchException.cs
Исходный код:
ArrayTypeMismatchException.cs

Внимание!

This API supports obsolete formatter-based serialization. It should not be called or extended by application code.

Инициализирует новый экземпляр класса ArrayTypeMismatchException с сериализованными данными.

C#
protected ArrayTypeMismatchException (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
C#
[System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
protected ArrayTypeMismatchException (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);

Параметры

info
SerializationInfo

Объект, содержащий сериализованные данные объекта.

context
StreamingContext

Контекстные сведения об источнике или назначении.

Атрибуты

Комментарии

Этот конструктор вызывается во время десериализации для восстановления объекта исключения, переданного в потоке. Дополнительные сведения см. в разделе Сериализация XML и SOAP.

См. также раздел

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

ArrayTypeMismatchException(String, Exception)

Исходный код:
ArrayTypeMismatchException.cs
Исходный код:
ArrayTypeMismatchException.cs
Исходный код:
ArrayTypeMismatchException.cs

Инициализирует новый экземпляр класса ArrayTypeMismatchException указанным сообщением об ошибке и ссылкой на внутреннее исключение, вызвавшее данное исключение.

C#
public ArrayTypeMismatchException (string message, Exception innerException);
C#
public ArrayTypeMismatchException (string? message, Exception? innerException);

Параметры

message
String

Сообщение об ошибке, указывающее причину создания исключения.

innerException
Exception

Исключение, которое является причиной текущего исключения. Если параметр innerException не является указателем NULL, текущее исключение возникло в блоке catch, обрабатывающем внутреннее исключение.

Примеры

В следующем примере кода демонстрируется ArrayTypeMismatchException конструктор ArrayTypeMismatchException класса . Он содержит функцию, которая принимает два массива в качестве аргументов и проверяет, относятся ли два массива к одному типу. Если массивы имеют разные типы, создается новый ArrayTypeMismatchException и затем перехватывается в вызывающем методе.

C#
using System;

public class ArrayTypeMismatchConst3
{
    public void CopyArray(Array myArray, Array myArray1)
    {
        try
        {
            // Copies the value of one array into another array.
            myArray.SetValue(myArray1.GetValue(0), 0);
            myArray.SetValue(myArray1.GetValue(1), 1);
        }
        catch (Exception e)
        {
            // Throw an exception of with a message and innerexception.
            throw new ArrayTypeMismatchException("The Source and destination arrays are of not same type.", e);
        }
    }
    static void Main()
    {
        try
        {
            string[] myStringArray = new string[2];
            myStringArray.SetValue("Jones", 0);
            myStringArray.SetValue("John", 1);
            int[] myIntArray = new int[2];
            ArrayTypeMismatchConst3 myArrayType = new();
            myArrayType.CopyArray(myStringArray, myIntArray);
        }
        catch (ArrayTypeMismatchException e)
        {
            Console.WriteLine("The Exception Message is : " + e.Message);
            Console.WriteLine("The Inner exception is :" + e.InnerException);
        }
    }
}

Комментарии

Исключение, созданное как прямой результат предыдущего исключения, должно содержать в свойстве InnerException ссылку на предыдущее исключение. Свойство InnerException возвращает то же значение, которое передается конструктору, или пустую ссылку (Nothing в Visual Basic), если свойство InnerException не предоставляет конструктору значение внутреннего исключения.

В следующей таблице показаны первоначальные значения свойств для экземпляра ArrayTypeMismatchException.

Свойство Значение
InnerException Ссылка на внутреннее исключение.
Message Строка сообщения об ошибке.

См. также раздел

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