কারণ তারা দু'জনের শক্তি এবং আমি এটি করতে পারি:
var permissions = Permissions.Read | Permissions.Write;
এবং সম্ভবত পরে ...
if( (permissions & Permissions.Write) == Permissions.Write )
{
// we have write access
}
এটি একটি বিট ক্ষেত্র, যেখানে প্রতিটি সেট বিট কিছু অনুমতির সাথে মিলে যায় (বা বর্ণিত মানটি যা যুক্তিযুক্ত তার সাথে মিল রাখে)। যদি এগুলি সংজ্ঞায়িত করা হয় তবে 1, 2, 3, ...
আপনি এই ফ্যাশনে বিটওয়াইজ অপারেটরগুলি ব্যবহার করতে পারবেন না এবং অর্থবহ ফলাফল পাবেন। আরও গভীরভাবে আবিষ্কার করতে ...
Permissions.Read == 1 == 00000001
Permissions.Write == 2 == 00000010
Permissions.Delete == 4 == 00000100
এখানে একটি নিদর্শন লক্ষ্য করুন? এখন যদি আমরা আমার মূল উদাহরণটি গ্রহণ করি, যেমন,
var permissions = Permissions.Read | Permissions.Write;
তারপর ...
permissions == 00000011
দেখা? উভয় Read
এবং Write
বিট সেট করা আছে, এবং আমি পরীক্ষা করতে পারবেন যে স্বাধীনভাবে (এছাড়াও যে বিজ্ঞপ্তি Delete
বিট হয় না সেট এবং সেইজন্য এই মান মোছার জন্য আপনাকে অনুমতি বহন করে না)।
এটি বিটগুলির একক ক্ষেত্রে একাধিক পতাকা সংরক্ষণ করতে দেয়।