کار با کلاس Sealed در سی شارپ

کلاس Sealed

در این مقاله می خواهیم درباره یکی از ویژگی های بسیار پرکاربرد شی گرای سی شارپ یعنی کلاس Sealed بحث کنیم. توضیحات کامل به همراه کد های مربوطه برایتان در ادامه ی مطلب قرار داده شده است. با من همراه باشید …

کلاس Sealed

نوعی کلاس است که نمی توان از آن ارث بری کرد. در زیر به برخی از نکات مربوط به آن اشاره شده است:

این کلاس با کلمه کلیدی Sealed ایجاد می شود.

نمی توان بر روی این کلاس ها access modifier (مجوزهای دسترسی) اعمال کرد.

برای دسترسی به اعضای کلاس Sealed باید شی ای از جنس این کلاس ایجاد کنیم.

برای جلوگیری از ارث بری کردن از یک کلاس، از کلمه کلیدی Sealed برای آن استفاده می کنیم.

مثال:

public sealed class CustoMerDetails  
{  
    public string AccountIno()  
    {  
        return "Vithal Wadje";  
    }  
} 

در مثال بالا، کلاس ما با کلمه کلیدی Sealed تعریف شده است از این رو نمی توان از این کلاس و اعضای آن ارث بری کرد، به عبارت دیگر نمی توان از کلاس Sealed کلاسی مشتق کرد.

این نوع از کلاس ها زمانی که می خواهیم وراثت از کلاس را محدود کنیم بسیار مهم هستند که بالاترین سطح از امنیت را برای کد فراهم می کنند. حالا اجازه دهید که مثالی از کلاس Sealed را باهم مشاهده کنیم که به صورت console application ایجاد شده است.

ویژوال استودیو را از منوی استارت باز می کنیم.

از منوی File گزینه New و سپس Project را انتخاب کرده و از قسمت Visual C# گزینه Windows و سپس Console application را انتخاب می کنیم.

پس از آن نام مناسبی مانند “abstract class” یا هر نام دیگری انتخاب کرده و محل ذخیره سازی پروژه را مشخص می کنیم و روی دکمه Ok کلیک می کنیم.

حال فایل کلاس را باز کرده و برنامه ساده زیر را در آن ایجاد می کنیم.

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
  
namespace SealedClass  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            //creating the object of sealed class    
            CustoMerDetails obj = new CustoMerDetails();  
            string Name = obj.AccountIno();  
            //writting output to console    
  
            Console.WriteLine(Name);  
            Console.ReadLine();  
        }  
    }  
  
    public sealed class CustoMerDetails //sealed class    
    {  
        public string AccountIno()  
        {  
            return "Vithal Wadje";  
        }  
    }  
}

در برنامه بالا، CustoMerDetails یک کلاس Sealed شامل یک متد به نام ()AccountIno می باشد که قابل وراثت نیست، بنابراین برای دسترسی به اعضای یک کلاس Sealed باید در متد main کلاس program شی ای از جنس آن کلاس ایجاد کنیم.

حال، ممکن است فکر کنید چه تفاوتی بین Sealed و private وجود دارد چرا که هر دو این کلاس ها قابل ارث بری نیستند، در زیر به تفاوت های این دو اشاره شده است:

کلاس های Private نمی توانند به طور مستقیم در فضای نام تعریف شوند، اما کلاس های Sealed می توانند درون فضای نام تعریف شوند.

ما نمی توانیم شی ای از کلاس private بسازیم اما می توانیم شی ای از جنس کلاس Sealed داشته باشیم.

اعضای کلاس private تنها درون کلاس قابل دسترسی هستند، اما اعضای کلاس Sealed از طریق شی در بیرون کلاس نیز قابل دسترسی می باشند.

موفق باشید !

  • پسورد: www.mspsoft.com
داریوش فرخی

داریوش فرخی هستم از سال 92 شروع به یادگیری برنامه نویسی و از سال 93 در بخش برنامه نویسی و تولید محتوای سایت mspsoft.com مشغول هستم. فعالیتم نیز بیشتر در زمینه های برنامه نویسی با سی شارپ و asp.net بوده است. اوقات فراغتم را هم غالبا با تماشای فیلم یا بازی های کامپیوتری پر میکنم .

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.