Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

คุณสมบัติ IsReadOnly ของคลาส BitArray ใน C#

คลาส BitArray ในเนมสเปซ System.Collections ใช้จัดเก็บบิต (0 และ 1) เมื่อไม่ทราบจำนวนบิตล่วงหน้า คุณสมบัติ IsReadOnly ใช้ตรวจสอบว่า BitArray เป็นแบบอ่านอย่างเดียว (Read-only) หรือไม่ หากเป็น true จะไม่สามารถเพิ่ม ลบ หรือแก้ไของค์ประกอบได้

ตัวอย่างการใช้งาน

using System;
using System.Collections;

namespace Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            BitArray ba1 = new BitArray(5);
            BitArray ba2 = new BitArray(5);
            byte[] a = { 90 };
            byte[] b = { 30 };
            
            ba1 = new BitArray(a);
            ba2 = new BitArray(b);
            
            Console.WriteLine("Bit array ba1: 60");
            for (int i = 0; i < ba1.Count; i++)
            {
                Console.Write("{0, -4} ", ba1[i]);
            }
            Console.WriteLine();
            
            Console.WriteLine("IsReadOnly = " + ba1.IsReadOnly);
            Console.WriteLine("IsReadOnly = " + ba2.IsReadOnly);
            Console.ReadKey();
        }
    }
}

ผลลัพธ์

Bit array ba1: 60
False True False True True False True False
IsReadOnly = False
IsReadOnly = False

คำอธิบาย

  • BitArray สร้างจากอาร์เรย์ไบต์ (byte[]) ได้
  • คุณสมบัติ IsReadOnly ส่งคืน false เสมอสำหรับ BitArray มาตรฐาน เพรองรองรับการแก้ไขค่าได้ (เช่น ba1[0] = true)
  • ต่างจาก ReadOnlyCollection<T> ที่เป็น Wrapper ทำให้คอลเลกชันอ่านอย่างเดียวได้จริง

การใช้งานจริง: BitArray เหมาะสำหรับจัดการ Flag, Bitmask, หรือชุดข้อมูล Boolean ขนาดใหญ่ เพื่อประหยัดหน่วยความจำ (1 บิตต่อค่า แทน 1 ไบต์ของ bool[])