کلاس sealed در سی شارپ
سلام دوستان مبحثی که امروز میخواهیم بررسی کنیم کلاس sealed در سی شارپ است.sealed یکی از مهم ترین بخش های شی گرایی است که لازم است با ان اشنایی کافی داشته باشیم
این کلاس که با کلمه کلیدی sealed ایجاد می شود به ما اجازه ارث بری نمی دهد و اگر بخواهیم از اجزای این کلاس استفاده کنیم باید شی از جنس ان ایجاد کنیم.
شاید برای کسانی که حتی زیاد با شی گرایی اشنایی ندارند این سوال پیش بیاید که تفاوت sealed و private در چیست؟
خب همانطور که شاید متوجه شده باشید هر دوی این کلاس ها قابل ارث بری نیستند.ولی خب تفاوت هایی دارند که به بررسی ان ها میپردازیم:
- ما از کلاس sealed میتوانید یک شی بسازیم ولی این امکان در کلاس private وجود ندارد.
- از اجزای کلاس sealed در بیرون از کلاس هم به صورت شی میتوانیم استفاده کنیم اما در حالت private فقط در داخل کلاس میتوانیم استفاده کنیم.
- کلاس sealed را میتوانیم در فضای نامی تعریف کنیم که این امکان در private وجود ندارد.خب حالا برای فهم بهتر به بررسی یک مثال از این کلاس میپردازیم.یک کلاس همراه با یک تابع ایجاد میکنیم و از کلمه کلیدی sealed استفاده میکنیم به صورت زیر:
1 2 3 4 5 6 7 | sealed class SealedClass { public int Add(int x, int y) { return x + y; } } |
همانطور که میبینید کلمه کلیدی sealed استفاده کردیم در نتیجه نمیتوانیم از این کلاس ارث بری کنیم.اینکار در بالا بردن امنیت و محدود سازی کلاس و وراثت میتواند مفید باشد.
حال با یک مثال کامل در محیط کنسولی به طریقه استفاده از این کلاس میپردازیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | namespace ConsoleApplication15 { class Program { static void Main(string[] args) { SealedClass sealedCls = new SealedClass(); int total = sealedCls.Add(4, 5); Console.WriteLine("Total = " + total.ToString()); Console.ReadKey(); } } } sealed class SealedClass { public int Add(int x, int y) { return x + y; } } |
خب ما یک کلاس که قبلا هم به ان اشاره شد از نوع sealed ایجاد کردیم که دارای یک تابع است سپس در متد main این کلاس را تعریف کردیم.کد ما بدون خطا ایجاد می شود اما اگر از کلاس sealed ارث بری میکردیم با خطا مواجه می شدیم.
امیدوارم اموزش مفید واقع شده باشد.
موفق باشید
سلام.
خیلی ممنون از مطالب مفیدتون.
ممنونم خوب بود