PDA

View Full Version : سوال: private Class



mhsmity
یک شنبه 09 بهمن 1390, 04:51 صبح
سلام
چه طوری یه کلاس private تعریف کنم؟

چندتا کلاس تعریف کردم حالا می خوام یکی را private کنم ولی
Error 1 Elements defined in a namespace cannot be explicitly declared as private, protected, or protected internal

mhsmity
یک شنبه 09 بهمن 1390, 05:10 صبح
public class ClassA
{
public MethodA()
{
<some code>
myObjectClassB.DoSomething(); // ClassB is only used by ClassA
<some code>
}
}

public class ClassB
{
public DoSomething()
{
}
}


________________________________________-

public class ClassA
{
public MethodA()
{
<some code>
myObjectClassB.DoSomething(); // Class B is only used by ClassM
<some code>
}

private class ClassB
{
public DoSomething()
{
}
}
}

gwbasic
یک شنبه 09 بهمن 1390, 07:37 صبح
کلاس private را فقط داخل یک کلاس دیگر می تونید تعریف کنید و فقط در آن کلاس هم قابل استفاده می باشد و گرنه بی معنی می شود (کلاسی که جایی قابل استفاده نیست)

reza.bn2005
یک شنبه 09 بهمن 1390, 09:48 صبح
با سلام
دوست عزیز آقای gwbasic (http://barnamenevis.org/member.php?25140-gwbasic) ممنون از مقالاتی که در این سایت قرار می دهید من واقعا خیلی چیز ها از شما یاد گرفته ام
یک سوالی داشتم
این private class به چه دردی می خورد. آیا نمی شود همین کار را در یک متد انجام داد؟

gwbasic
یک شنبه 09 بهمن 1390, 10:26 صبح
کلاس private کاربرد کمی دارد. اگر فکر می کنید که کلاسی دارید که فقط و فقط در یک کلاس دیگر قابل استفاده هست می تونید آن کلاس را در داخل کلاس دیگر به صورت private تعریف کنید. و معمولا اینطور نیست و کلاسهای که می سازیم کاربردهای بیشتری دارند.
نکته خاصی ندارد. به اون مثال خاصی که زدید توجه نکنید فقط یک مثال است برای مفهوم private وگرنه مطمئنا می شود فقط اون متدی که داخل کلاس تعریف شده رو در کلاس B تعریف کرد.
دقت کنید که از یک کلاس برای بسته بندی یکسری اطلاعات مربوط به هم (شی) استفاده می شود.

mhsmity
دوشنبه 10 بهمن 1390, 01:17 صبح
از زمان دبیرستان که با وبی 6 کار می کردم همیشه Dll و Ocx برای انجام کاراهام می سازم
مثل کار با ریجستر ویرایش عکس اتصال به پایگاه داده الگوریتم های رمزنگاری و غیرو ...
همون قانون خودمون یک بار بنویس هزار بار استفاده کن
حالا برای ایجاد کار جدید فقط کافی هستش کارهای گذشته رو کنار هم بگذارم شده بعضی برنامه هام از Dll های استفاده می کنه که هرکدومش به یک زبان متفاوتی نوشته شده

خوب طبیعی هستش که وقتی کاربر فضای نام رو می نویسه نخوام بعضی از کلاس ها نمایش داده بشه