PDA

View Full Version : تفاوت میان پروپرتی های Public و Private



khatarat
جمعه 11 بهمن 1387, 21:27 عصر
با سلام
من یه سوال برام پیش اومده بود گفتم از شما بپرسم
در تعریف کلاس وقتی می تونیم پروپرتی ها رو به صورت پابلیک تعریف کنیم چرا می گن بصورت پریویت تعریف کنید و بعد تابع get , set رو براش بنویسید؟

توسعه نویس
شنبه 12 بهمن 1387, 00:38 صبح
ببینید باید موارد استفاده از پروپرتی ها را بدانید. باید بدانید کجا نیاز دارید پروپرتی داشته باشید و کجا نیاز به یک متد دارید. کجا باید کلاس شما داری پروپرتی باشد و کجا باید از یک پروپرتی فقط در خود کلاس استفاده شود.

public ویا private بودن آن ربطی به get و set ندارد. در پروپرتی حتما باید یکی از این دو یا هر دوی اینها باشد تا به آن بگویند property. اگر این دو نباشد اونوقت باید برای نام تابع یک جفت پرانتز بزاری که اون هم میشه یک متد.

مهدی کرامتی
شنبه 12 بهمن 1387, 12:08 عصر
در تعریف کلاس وقتی می تونیم پروپرتی ها رو به صورت پابلیک تعریف کنیم چرا می گن بصورت پریویت تعریف کنید و بعد تابع get , set رو براش بنویسید؟
ابتدا میبایست بین تعاریف Field و Property تمایز قائل شوید. چیزی که شما در نیمه اول جمله اشاره میکنید تعریف یک Field است نه Property.
بهرحال خیلی اوقات تعریف فیلد کافی است و نیازی به تبدیل آن به پراپرتی نیست، زمانی شما فیلد فوق را به پراپرتی تبدیل میکنید که:


بر اساس نوع طراحی سیستم مجبور باشید در تعریف Data Member ها فقط از Property استفاده کنید.
نیاز داشته باشید هنگام خواندن یا نوشتن مقدار Property کاری بصورت خودکار انجام دهید (مثل پراپرتی Now کلاس DateTime که هنگام خوانده شدن مقدارش بصورت خودکار زمان کنونی سیستم را میخواند).