Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Phương thức Array.ConstrainedCopy() trong C#


Phương thức Array.ConstrainedCopy() trong C# được sử dụng để sao chép một phạm vi phần tử từ mảng nguồn bắt đầu tại chỉ số nguồn đã chỉ định và dán vào mảng đích bắt đầu tại chỉ số đích đã chỉ định. Phương thức này đảm bảo tính toàn vẹn: nếu sao chép thất bại, mảng đích không bị thay đổi.

Cú pháp

public static void ConstrainedCopy(Array sourceArr, int sourceIndex, Array destinationArr, int destinationIndex, int length);

Tham số:

  • sourceArr: Mảng nguồn chứa dữ liệu cần sao chép
  • sourceIndex: Chỉ số bắt đầu trong mảng nguồn
  • destinationArr: Mảng đích nhận dữ liệu
  • destinationIndex: Chỉ số bắt đầu trong mảng đích
  • length: Số lượng phần tử cần sao chép

Ví dụ

using System;

public class Demo
{
    public static void Main()
    {
        int[] arrDest = new int[10];
        
        Console.WriteLine("Các phần tử mảng...");
        int[] arrSrc = { 20, 50, 100, 150, 200, 300, 400 };
        
        for (int i = 0; i < arrSrc.Length; i++)
            Console.Write("{0} ", arrSrc[i]);
        
        Console.WriteLine();
        
        // Sao chép 4 phần tử từ chỉ số 3 của mảng nguồn sang chỉ số 0 của mảng đích
        Array.ConstrainedCopy(arrSrc, 3, arrDest, 0, 4);
        
        Console.WriteLine("Mảng đích:");
        for (int i = 0; i < arrDest.Length; i++)
            Console.Write("{0} ", arrDest[i]);
    }
}

Kết quả

Các phần tử mảng... 20 50 100 150 200 300 400
Mảng đích: 150 200 300 400 0 0 0 0 0 0

Khác biệt với Array.Copy(): ConstrainedCopy đảm bảo tính nguyên tử (atomic) - nếu có ngoại lệ xảy ra (như kiểu không tương thích), mảng đích sẽ không bị sửa đổi. Array.Copy có thể để mảng đích ở trạng thái không nhất quán nếu lỗi xảy ra giữa chừng.