نمایش نتایج 1 تا 9 از 9

نام تاپیک: منظور از internal چیست؟

  1. #1
    کاربر جدید آواتار C#‎_programmer
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    19

    Tick منظور از internal چیست؟

    سلام دوستان
    منظور از متغیر یا کلاس internal یا هر چیزی که میتونه internal باشه .چیه؟
    با تشکر

  2. #2
    نقل قول نوشته شده توسط C#‎_programmer مشاهده تاپیک
    سلام دوستان
    منظور از متغیر یا کلاس internal یا هر چیزی که میتونه internal باشه .چیه؟
    با تشکر
    Internal و کلمات دیگری از قبیل Public، private و ... اصطلاحا به Access Modifier ها معروف هستند. به طور کلی با این ها می توانید، سطوح دسترسی و محدوده قابل رویت بودن آبجکت را مشخص کنید.
    internal که گاها با آن friend نیز گفته می شود، به این منظر به کار برده می شود که کلاس که توسط internal مشخص می شود، تنها در همان اسمبلی خودش و توسط کلاس های داخل همان اسمبلی قابل دسترسی می باشد.
    از این خاصیت به ویژه در تولید کامپوننت ها و بسته بندی آن ها استفاده می شود.
    به عنوان مثال فرض کنید که کلاسی برای ترسیم اشکال نوشته اید. با نام Graphic .این کلاس دارای متد های مختلفی از جمله DrawCircle ، DrawRectangle و ... می باشد. طبیعتا کلاس گرافیک بایستی به صورت public تعریف شود تا در خارج از اسمبلی خودش قابل دسترسی باشد و بتوان متد های آن را فراخوانی کرد.
    حال شما در کامپوننت خود، کلاس هایی به منظور ترسیم اشکال مختلف ایجاد کرده اید. مثلا کلاسی به نام Rectangle که عمل ترسیم مستطیل را انجام می دهد. طبیعتا کلاس Rectangle بایستی به صورت internal تعریف گردد. چرا که بایستی تنها بتوان از طریق کلاس graphic به آن دستزسی داشت و کاربر نهایی نیاز به استفاده و دسترسی مستقیم به کلاس Rectangle ندارد. چرا، چونکه کاربر نیاز ندارد بداند که الگوریتمی که مستطلی را ترسیم می کند، به چه شکلی کار می کند. او فقط نیاز دارد بداند که چه پارامتر هایی را به کلاس Graphic بفرستد و منتظر دریافت شکل خود از ملاس شما باشد. این همان چیزی است که در مباحث OOP ، به Information Hiding معروف است. ( گاهی هم به Implementation Hiding معرفی می شود) چون نحوه پیاده سازی از نحوه به کار گیری از هم جدا شده اند.

    البته این یک مثال بود. و ممکن است بر اساس نوع کامپوننت و هدف شما ، کاربر بتواند دسترسی مستقیم به کلاس Rectangle داشته باشد و....

    البته نکات بسیاری در رابطه با تولید کامپوننت های شخصی وجود دارد که بحث در باره آن ها ربطی به موضوع تاپیک نداره.
    موفق باشید
    آخرین ویرایش به وسیله Mahdi.Kiani : شنبه 31 فروردین 1387 در 13:34 عصر

    مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
    مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084


    وب سایت : http://www.mkiani.ir
    پست الکترونیک : mkiani3000@gmail.com

    موفق و پیروز باشید.
    مهدی کیانی


  3. #3
    کاربر دائمی
    تاریخ عضویت
    خرداد 1382
    محل زندگی
    تهران
    پست
    424
    یک متد یا یک کلاس اگر به صورت internal تعریف بشن، قابل دسترس توسط تمامی کلاس هایی هست که در همان namespace تعریف شدن اما توسط کلاسهای خارج از اون namesapace دیده نمیشن.

  4. #4
    نقل قول نوشته شده توسط naeeme مشاهده تاپیک
    یک متد یا یک کلاس اگر به صورت internal تعریف بشن، قابل دسترس توسط تمامی کلاس هایی هست که در همان namespace تعریف شدن اما توسط کلاسهای خارج از اون namesapace دیده نمیشن.
    سلام
    nameSpace با اسمبلی خیلی فرق می کنه.. آبجکت هایی که با internal معرفی می شوند، در همان اسمبلی خودش قابل دستیابی است.. نه فقط در داخل NameSpace خودش
    یک اسمبلی معمولا یک namespace پیش فرض دارد که همنام با نام خود اسمبلی است. شاید به همین دلیله که فکر کردین، اسمبلی ها با nameSpace ها یکی هستند.
    یک اسمبلی می تواند دارای یک یا چند nameSpace باشد.
    آبجکت هایی که به صورت internal مشخص می شوند، در همه جای اون اسمبلی و توسط کلاس های دیگر ، در هر namespace ای که از اون اسمبلی باشند قابل دستیابی هستند.
    و به همین دلیل است که می توان nameSpace هایی با نام یکسان در اسمبلی های مختلف داشت
    به عنوان مثال فضای نام System می تواند اشاره به فضای نام System در اسمبلی System ، اسمبیل mscorelib و یا اسمبلی System.Core و یا حتی در اسمبلی کامپوننت شخصی شما باشد.
    مثلا naeem.System !!! که naeem در اینجا میشه نام اسمبلی شما که nameSpace سیستم درون آن قرار گرفته است. حال اگر کلاسی با نام A در NameSpace سیستم داشته باشید ( که internal باشد) توسط کلاس B که در NameSpace دیگری مثلا به نام حسن، قرار دارد، قابل دستیابی سات. به شرطی که حسن نیز در همان اسمبلی naeem باشد
    موفق باشید

    اگر باز هم جایی قابل ابهام هست تا توضیح بیشتری بدهم
    موفق باشید

    مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
    مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084


    وب سایت : http://www.mkiani.ir
    پست الکترونیک : mkiani3000@gmail.com

    موفق و پیروز باشید.
    مهدی کیانی


  5. #5
    کاربر دائمی
    تاریخ عضویت
    خرداد 1382
    محل زندگی
    تهران
    پست
    424
    حق با شماست. من متن رو درست نخونده بودم. مرسی از تذکرتون

  6. #6
    فرق internal با protected چیه ؟ هر دوی اینها فقط در داخل همان فضای نام قابل استفاده هستند. من قبلا شنیده بودم که friend به توابعی می گن که به عناصر محافظت شده فضاهای نام دیکر دسترسی داشته باشد. البته در صورتی که قبلا در آن فضای نام تعریف شده باشند. آیا این درسته ؟

  7. #7

    مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
    مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084


    وب سایت : http://www.mkiani.ir
    پست الکترونیک : mkiani3000@gmail.com

    موفق و پیروز باشید.
    مهدی کیانی


  8. #8

    نقل قول: منظور از internal چیست؟

    سلام.
    آیا درسته که بگیم اینترنال و پابلیک در محدوده یک اسمبلی به یه صورت عمل میکنن؟

  9. #9
    کاربر جدید آواتار yavar00111
    تاریخ عضویت
    دی 1387
    محل زندگی
    بندرعباس
    سن
    35
    پست
    14

    نقل قول: منظور از internal چیست؟

    نقل قول نوشته شده توسط Payman62 مشاهده تاپیک
    سلام.
    آیا درسته که بگیم اینترنال و پابلیک در محدوده یک اسمبلی به یه صورت عمل میکنن؟
    بله، در محدوده یک اسمبلی تفاوتی ندارند.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •