اثر پروانه ای

برنامه نویسی حرفه ای کامپیوتر به زبان سی شارپ - لیست کامل کلمات کلیدی در ʚĭɞ - ßữʈʨɾflỵ ⓔⓕⓕⓔⓒⓣ

اثر پروانه ای

برنامه نویسی حرفه ای کامپیوتر به زبان سی شارپ - لیست کامل کلمات کلیدی در ʚĭɞ - ßữʈʨɾflỵ ⓔⓕⓕⓔⓒⓣ

اثر پروانه ای

اثر پروانه‌ای نام پدیده‌ای است که به دلیل حساسیت سیستم‌های آشوب‌ناک به شرایط اولیه ایجاد می‌شود. این پدیده به این اشاره می‌کند که تغییری کوچک در یک سیستم آشوب‌ناک چون جو سیارهٔ زمین (مثلاً بال‌زدن پروانه) می‌تواند باعث تغییرات شدید (وقوع توفان در کشوری دیگر) در آینده شود.

ایده‌ٔ این‌که پروانه‌ای می‌تواند باعث تغییری آشوبی شود نخستین بار در ۱۹۵۲ در داستان کوتاهی به نام آوای تندر اثر ری بردبری مطرح شد. عبارت «اثر پروانه ای» هم در ۱۹۶۱ در پی مقاله‌ای از ادوارد لورنتس به وجود آمد. وی در صد و سی و نهمین اجلاس ای‌ای‌ای‌اس در سال ۱۹۷۲ مقاله‌ای با این عنوان ارائه داد که «آیا بال‌زدن پروانه‌ای در برزیل می‌تواند باعث ایجاد تندباد در تکزاس شود؟»

آخرین نظرات
  • ۱۳ بهمن ۰۱، ۱۵:۳۱ - حسنا سادات و سما سادات
    عالی
  • ۲
  • ۰

کلمه کلیدی internal

کلمه کلیدی internal یک اصلاحگر (Modifier) برای نوع و اعضای نوع ها است. نوع ها و اعضای internal فقط از طریق فایل درون اسمبلی های یکسان قابل دستیابی اند.

مثال:

public class BaseClass 
{
    // فقط از طریق اسمبلی یکسان قابل دستیابی است
    internal static int x = 0;
}

نوع ها و اعضایی که اصلاحگر protected internal داشته باشند، می توانند از طریق اسمبلی فعلی یا از طریق نوع های مشتق شده از کلاسی که حاوی این اصلاحگر می باشند، دستیابی شوند.

  • یک استفاده عمومی از این اصلاحگر دستیابی، در توسعه نرم افزاری مؤلفه گرا (Component-Base) می باشد. زیرا توانایی همکاری گروهی از مؤلفه ها را بطور خصوصی (private) و بدون دیده شدن از طریق بقیه کد برنامه را می دهد. برای مثال یک قاب کاری (Framework) برای ساخت رابط کاربری گرافیکی می تواند کلاس های Control و Form را که بوسیله اعضای internal با هم همکاری می کنند را ارائه کند. تا زمانی که این اعضا بصورت internal باشند، در معرض دید کدی که از قاب کاگری استفاده می کند نیستند.
  • ارجاع دادن نوع یا عضوی با اصلاحگر دستیابی internal به بیرون اسمبلی ای که در آن تعریف شده، یک خطا محسوب می شود.

نکته: یک متد internal virtual می تواند در بعضی زبان ها از جمله MSIL متنی، با استفاده از ILasm.exe بازنویسی (Override) شود، حتی با وجود اینکه نمی تواند بوسیله #C بازنویسی شود.

مثال: این مثال شامل دو فایل Assembly1.cs و Assembly1_a.cs می باشد. فایل اول حاوی یک کلاس پایه internal به نام BaseClass است. در فایل دوم تلاشی که برای نمونه سازی BaseClass انجام شده، منجر به بروز خطا خواهد شد.

// Assembly1.cs
// بااین پارامتر کمپایل شود: /target:library
internal class BaseClass { public static int intM = 0; }

// Assembly1_a.cs
// بااین پارامتر کمپایل شود: /reference:Assembly1.dll
class TestAccess 
{
   static void Main() 
   {
      BaseClass myBase = new BaseClass();   // CS0122
   }
}

مثال: در این مثال از همان فایل های مثال قبل استفاده کنید و سطح دسترسی BaseClass را به public تغییر دهید. همچنین سطح دسترسی عضو intM را به internal تغییر دهید. در این مثال شما می توانید از کلاس نمونه گیری کنید اما نمی توانید به عضو internal دسترسی داشته باشید.

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی