متغیرهای Public در سیشارپ
متغیرهای Public در سیشارپ امکان دسترسی به داده کلاس از بخش دیگر برنامه را فراهم میکنند و در برنامهنویسی شیءگرا کاربرد دارد.
24 مهر 1405
لینک کوتاه
متغیر Public در سیشارپ چیست؟
کلمه کلیدی public یکی از سطحهای دسترسی در سیشارپ است که برای مشخص کردن قابل دسترس بودن اعضای یک کلاس استفاده میشود. هنگامی که یک متغیر با سطح دسترسی public تعریف میشود، کدهای مجاز خارج از کلاس نیز میتوانند به آن دسترسی داشته باشند.برای مثال، فرض کنید کلاسی برای نگهداری اطلاعات یک دانشجو طراحی کردهایم.
این کلاس دارای متغیری برای ذخیره نام دانشجو است.
اگر این متغیر را بهصورت public تعریف کنیم، میتوانیم از طریق یک نمونه از کلاس، مقدار آن را تغییر دهیم یا بخوانیم.
class Student
{
public string Name;
}
در این مثال، کلاس Student دارای یک متغیر عمومی به نام Name است.
نوع داده این متغیر string است و برای نگهداری متن استفاده میشود.
اکنون میتوانیم در بخش دیگری از برنامه به این متغیر دسترسی داشته باشیم:
Student student = new Student();
student.Name = "Ali";
Console.WriteLine(student.Name);
خروجی برنامه به شکل زیر خواهد بود:
Ali
در این مثال، ابتدا یک نمونه از کلاس Student ایجاد کردهایم.
سپس مقدار Ali را در متغیر Name قرار دادهایم و در نهایت مقدار آن را نمایش دادهایم.
آیا به دنبال یک فرصت عالی برای یادگیری برنامهنویسی هستید؟ 🚀با دوره آموزشی سیشارپ ما، شما میتوانید مهارتهای خود را به سطح جدیدی ارتقا دهید! این دوره بهطور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامهنویسی سیشارپ پیش بروید.
👨🏫 چرا دوره ما را انتخاب کنید؟
- محتوای جامع و عملی: با پروژههای واقعی و تمرینات عملی، یادگیری را به تجربهای جذاب تبدیل کنید.
- مدرس مجرب: از تجربه و دانش مدرس حرفهای بهرهمند شوید که شما را در هر مرحله از یادگیری راهنمایی میکنند.
- پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
- دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، میتوانید به آن مراجعه کنید.
💡 فرصت را از دست ندهید!
بایادگیری سیشارپ، میتوانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژههای جذاب و چالشبرانگیز شرکت کنید.
همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آیندهای روشنتر بردارید!
نحوه تعریف متغیرهای Public در سی شارپ
برای تعریف یک متغیر عمومی در سیشارپ، ابتدا کلمه کلیدی public را مینویسیم، سپس نوع داده و نام متغیر را مشخص میکنیم.ساختار کلی تعریف متغیر به شکل زیر است:
public DataType variableName;
در این ساختار، public سطح دسترسی متغیر را مشخص میکند، DataType نوع داده متغیر است و variableName نامی است که برای متغیر انتخاب میکنیم.
برای مثال:
public int Age;
public string FirstName;
public double Salary;
public bool IsActive;
در این کد، چهار متغیر عمومی تعریف شدهاند.
متغیر Age برای نگهداری عدد صحیح، FirstName برای ذخیره متن، Salary برای ذخیره عدد اعشاری و IsActive برای نگهداری مقدار درست یا نادرست استفاده میشود.
نکته مهم این است که متغیرهای نمونهای از نوع public را معمولاً از طریق یک شیء از کلاس فراخوانی میکنیم.
همچنین اعضای public static بدون ایجاد نمونه از کلاس و از طریق نام کلاس قابل دسترسی هستند.
مثال کاربردی از متغیرهای Public در سی شارپ
برای درک بهتر این مفهوم، یک مثال کاربردی با استفاده از کلاس Car بررسی میکنیم.فرض کنید قصد داریم اطلاعات یک خودرو را در برنامه ذخیره کنیم.
class Car
{
public string Brand;
public string Color;
public int ModelYear;
}
در این کلاس، سه متغیر عمومی تعریف کردهایم.
متغیر Brand نام برند خودرو، متغیر Color رنگ خودرو و متغیر ModelYear سال ساخت آن را نگهداری میکند.
اکنون میتوانیم از این کلاس در برنامه استفاده کنیم:
Car car = new Car();
car.Brand = "Toyota";
car.Color = "White";
car.ModelYear = 2025;
Console.WriteLine(car.Brand);
Console.WriteLine(car.Color);
Console.WriteLine(car.ModelYear);
خروجی:
Toyota
White
2025
همانطور که مشاهده میکنید، به دلیل عمومی بودن متغیرها، امکان مقداردهی و خواندن آنها از خارج کلاس وجود دارد.
این روش برای مثالهای آموزشی ساده مناسب است؛ اما در پروژههای بزرگتر بهتر است درباره استفاده از فیلدهای عمومی و امکان تغییر مستقیم اطلاعات تصمیم دقیقتری بگیریم.
تفاوت Public و Private در سیشارپ
دو سطح دسترسی پرکاربرد در سیشارپ، public و private هستند.تفاوت اصلی آنها در محدوده دسترسی به اعضای کلاس است.
-
public
عضو از بخشهای مجاز خارج از کلاس نیز قابل دسترسی است. -
private
عضو فقط در محدوده کلاس یا نوعی که در آن تعریف شده، قابل دسترسی است.
class Employee
{
public string Name;
private double Salary;
}
در این مثال، متغیر Name عمومی است؛ بنابراین میتوان از طریق یک نمونه از کلاس به آن دسترسی داشت.
اما متغیر Salary خصوصی است و نمیتوان مستقیماً از خارج کلاس آن را خواند یا تغییر داد.
کد زیر را در نظر بگیرید:
Employee employee = new Employee();
employee.Name = "Reza";
// این دستور خطا ایجاد میکند:
// employee.Salary = 50000;
خط مربوط به Salary به دلیل خصوصی بودن این عضو قابل اجرا نیست.
استفاده از private زمانی اهمیت بیشتری پیدا میکند که بخواهیم از تغییر مستقیم دادهها جلوگیری کنیم و کنترل نحوه دسترسی به اطلاعات را در اختیار کلاس قرار دهیم.
تفاوت متغیر Public با Property عمومی
یکی از نکات مهم در برنامهنویسی شیءگرا، تفاوت بین فیلد عمومی (Public Field) و ویژگی عمومی (Public Property) است.فیلد عمومی مستقیماً داده را نگهداری میکند؛ اما Property میتواند نحوه خواندن یا تغییر داده را کنترل کند.
نمونه فیلد عمومی:
class Product
{
public double Price;
}
در این حالت، کدهای بیرون کلاس میتوانند مقدار Price را مستقیماً تغییر دهند؛ حتی ممکن است مقدار نامعتبر یا منفی در آن قرار دهند.
حالا نمونهای با Property را ببینید:
class Product
{
public double Price { get; set; }
}
این کد یک Property عمومی با دسترسی خواندن و نوشتن ایجاد میکند.
البته این Property بهتنهایی جلوی وارد کردن مقدار منفی را نمیگیرد.
برای کنترل مقدار، میتوانیم از منطق اعتبارسنجی استفاده کنیم:
class Product
{
private double price;
public double Price
{
get { return price; }
set
{
if (value >= 0)
{
price = value;
}
}
}
}
در این مثال، فیلد price خصوصی است و Property عمومی Price امکان دسترسی کنترلشده به آن را فراهم میکند.
اگر مقدار منفی به Property داده شود، مقدار ذخیرهشده تغییر نمیکند.
در پروژههای واقعی، استفاده از Property معمولاً انتخاب مناسبتری برای دادههایی است که بخشی از رابط عمومی یک کلاس محسوب میشوند.
مزایای استفاده از متغیرهای Public در سی شارپ
استفاده از متغیرهای عمومی در برخی شرایط میتواند مفید باشد.مهمترین مزایای آن عبارتاند از:
۱. دسترسی آسان به دادهها
با استفاده از public میتوان به اعضای کلاس از بخشهای مجاز دیگر برنامه دسترسی داشت.این ویژگی در مثالهای ساده و تمرینهای آموزشی باعث کاهش پیچیدگی کد میشود.
۲. سادگی برنامهنویسی
در برنامههای کوچک، تعریف یک فیلد عمومی میتواند روش سادهای برای نگهداری و انتقال اطلاعات باشد؛ بهخصوص زمانی که نیازی به اعتبارسنجی یا منطق خاصی وجود ندارد.۳. مناسب برای یادگیری مفاهیم اولیه
متغیرهای عمومی به برنامهنویسان تازهکار کمک میکنند تا نحوه ایجاد کلاس، ساخت شیء، مقداردهی به اعضا و دسترسی به اطلاعات را بهتر درک کنند.معایب استفاده از متغیرهای Public
با وجود سادگی، استفاده بیشازحد از متغیرهای عمومی میتواند مشکلاتی ایجاد کند.۱. امکان تغییر مستقیم دادهها
هر بخش مجاز از برنامه ممکن است مقدار متغیر عمومی را تغییر دهد.اگر این تغییر بدون بررسی انجام شود، احتمال ورود دادههای نامعتبر افزایش مییابد.
۲. کاهش کنترل کلاس بر اطلاعات
یکی از اهداف برنامهنویسی شیءگرا، مدیریت وضعیت داخلی اشیا است.وقتی فیلدها مستقیماً عمومی باشند، کنترل کلاس بر تغییرات آنها محدود میشود.
۳. دشوارتر شدن نگهداری پروژه
در پروژههای بزرگ، اگر بخشهای مختلف برنامه مستقیماً به فیلدهای عمومی وابسته باشند، تغییر ساختار دادهها میتواند نیازمند اصلاح قسمتهای زیادی از کد باشد.به همین دلیل، بهتر است فیلدهای عمومی را فقط زمانی انتخاب کنیم که واقعاً به چنین سطحی از دسترسی نیاز داریم.
آیا میتوان متغیر Public را Static تعریف کرد؟
بله. در سیشارپ میتوان یک فیلد را همزمان با سطح دسترسی public و ویژگی static تعریف کرد.عضو static به خود کلاس تعلق دارد، نه به یک نمونه مشخص از آن. بنابراین برای دسترسی به آن نیازی به ساخت شیء نیست.
برای مثال:
class AppSettings
{
public static string AppName = "MyApplication";
}
برای خواندن مقدار این متغیر میتوانیم از نام کلاس استفاده کنیم:
Console.WriteLine(AppSettings.AppName);
خروجی:MyApplication
در این مثال، متغیر AppName عمومی و ایستا است.به همین دلیل، از طریق نام کلاس قابل دسترسی خواهد بود.
بااینحال، استفاده از فیلدهای public static قابل تغییر باید با دقت انجام شود؛ زیرا قسمتهای مختلف برنامه میتوانند مقدار مشترک آنها را تغییر دهند.
برای تنظیمات عمومی، ثابتها یا Propertyهای مناسب ممکن است انتخاب بهتری باشند.
نکات مهم درباره متغیرهای Public
هنگام استفاده از متغیرهای عمومی در سیشارپ، به نکات زیر توجه کنید:- کلمه کلیدی public را قبل از نوع داده و نام فیلد قرار دهید.
- برای دسترسی به فیلد نمونهای، معمولاً ابتدا باید از کلاس یک شیء ایجاد کنید.
- برای دسترسی به اعضای static از نام کلاس استفاده میشود.
- عمومی بودن یک عضو به معنی دسترسی نامحدود از هر نقطه نیست؛ قواعد محدوده، نوع عضو و اسمبلی همچنان اهمیت دارند.
- برای دادههایی که نیاز به اعتبارسنجی دارند، استفاده از Property میتواند کنترل بیشتری ایجاد کند.
- برای اطلاعات داخلی کلاس، معمولاً private انتخاب مناسبتری است.
- در سیشارپ، سطح دسترسی پیشفرض فیلدهای تعریفشده در کلاس private است؛ بنابراین اگر بخواهید فیلدی عمومی باشد، باید public را صریحاً مشخص کنید.
جمعبندی
متغیرهای public در سیشارپ یکی از روشهای دسترسی به دادههای یک کلاس از بخشهای دیگر برنامه هستند.با استفاده از این سطح دسترسی میتوان اطلاعات را بهسادگی مقداردهی کرد و در قسمتهای مختلف برنامه به کار برد.
بااینحال، در طراحی حرفهای نرمافزار، عمومی کردن تمام فیلدها روش مناسبی نیست.
بهتر است برای دادههای داخلی از private و برای فراهم کردن دسترسی کنترلشده از Propertyهای عمومی استفاده کنیم.
انتخاب درست سطح دسترسی باعث افزایش امنیت منطقی دادهها، نگهداری آسانتر کد و طراحی بهتر کلاسها میشود.




کاربران ما
شما هم نظرتون با ما دریاره “متغیرهای Public در سیشارپ” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید