PDA

View Full Version : چرا بعضی از امکانات نیاز به اضافه کردن دستی رفرنس دارن؟



eshpilen
چهارشنبه 24 شهریور 1389, 09:25 صبح
میگم دات نت و ویژوال استودیو که تقریبا همه چیش خودکاره، ولی بعضی از اجزای دات نت با اینکه مال خودش هستن (مثلا کتابخانه های ایجاد شده توسط کاربر نیستن) و یه جزء عادی از دات نت، ولی اول نیاز هست بصورت دستی رفرنس اونا رو به برنامه اضافه کنیم. چرا اینکار نیاز هست و مثل بقیهء اجزاء بصورت خودکار نیست؟ فرقشون در چیه؟

saeidi.yusuf
دوشنبه 29 شهریور 1389, 15:11 عصر
دوست عزیز:
همه ی کتابخانه ها و namespace ها توی c# نیاز به اضافه شدن توسط ...add reference دارن.اما به صورت پیش فرض یه سری از این namespace ها (که پرکاربرد ترین کتابخانه ها هستن) به رفرنس برنامه ی شما اضافه شدن.یعنی هر وقت یک پروژه ی جدید ایجاد می کنید .net خودکار این کتابخانه ها رو اضافه می کنه . می تونین لیست این کتابخانه ها رو همیشه و توی برنامتون ببینید.
پنجره ی solusion فلدر references

eshpilen
دوشنبه 29 شهریور 1389, 23:33 عصر
راست میگید حتما همینطوره. نمیدونم من چرا فکر کردم یه علت دیگه ای داره.
ولی هنوزم این سوال برام باقی هست که مگه نمیشد ویژوال استودیو بصورت هوشمند این کار رو انجام بده؟
مثلا هر وقت یک دستور using میذاریم توی برنامه یا بصورت مستقیم از امکانات یک فضای نام استفاده میکنیم خب خودش بیاد و رفرنس رو اضافه کنه دیگه. یعنی این کار شدنی نیست؟!

saeidi.yusuf
سه شنبه 30 شهریور 1389, 08:32 صبح
دوست عزیز:
شاید اضافه کردن namespace ها به صورت خودکار کار منطقی به نظر برسه ولی یه همچین عملی موجب به وجود آمدن محدودیت های جدیدی برای برنامه نویس میشه.شما می تونید از توابع یک namespace یا یک کتابخانه بدون using کردن استفاده کنید به شرطی که مسیر تابع رو کامل ذکر کنید.
مثلا برای تعریف یک lable اگر بخواهید windows.form اضافه نکنید می توانید به صورت :System.Windows.Forms.Label ازش استفاده کنید که موجب سخت تر شدن کد نویسی میشه.
در کل وقتی name space خاصی رو add ref.. می کنید می تونید از تمام کلاس ها و عضو هاش (با دادن آدرس کامل) استفاده کنید که این کار باعث قدرتمندتر شدن کد نویس میشه و وقتی بخش خاصی از اون رو using میکنید دیگه نیازی به نوشتن درس کاملش ندارید که این کار باعث راحتر شدن کد نویسی میشه.