اثر پروانه ای

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

اثر پروانه ای

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

اثر پروانه ای

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

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

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

۷ مطلب با کلمه‌ی کلیدی «scope» ثبت شده است

  • ۲
  • ۰

بسم الله الرحمن الرحیم

سلام...

همونطوری که در جلسه قبل قولش رو داده بودم، در این درس می خوام در مورد محدوده متغیرها ، تبدیل رشته ها به عدد و همچنین ثابت ها، صحبت کنم. در قسمت عملی این درس هم با چندتا از اشیاء دیگر آشنا شویم. البته رسم بر اینه که به اشیائی که روی فرم میگذاریم "کنترل" بگیم، پس از حالا طبق همین رسم پیش خواهیم رفت.

متغیرها علاوه بر اینکه دارای نام، نوع و مقدار اولیه هستند، دارای طول عمر و سطح دسترسی نیز می‌باشند. با سه تای اولی که آشنایی دارید. اما توی این درس قصد دارم شما رو با طول عمر و سطح دسترسی متغیرها آشنا کنم. شما بعد از آشنایی با این موارد توانایی نوشتن برنامه های بهتری را خواهید داشت.

  • غلامعلی حسینی بهجانی
  • ۲
  • ۰

بیان using

یک املاء (syntax) راحت که درستی استفاده از اشیاء IDisposable را تضمین میکند را ارائه می دهد.

مثال

مثال زیر چگونگی استفاده از بیان using را نشان می دهد.

using (Font font1 = new Font("Arial", 10.0f)) 
{
    byte charset = font1.GdiCharSet;
}

ملاحظات

File و Font نمونه هایی از نوع های مدیریت شده (managed) هستند که منابع مدیریت نشده (unmanaged) را دستیابی می کنند (در این مورد دستگیره های فایل و زمینه ها دستگاه (دستگاهی که قرار است فونت در آنجا به نمایش در بیاید)) انواع گوناگون دیگری از منابع مدیریت نشده و نوع های کتابخانه کلاسی که آنها را کپسوله می کنند وجود دارد. همه ی چنین نوع هایی باید رابط IDisposable را پیاده سازی کنند.

  • غلامعلی حسینی بهجانی
  • ۲
  • ۰

رهنمون using

رهنمون using دو کاربرد دارد:

  • اجازه می دهد تا از نوع هایی که در فضای نام های دیگری تعریف شده اند به گونه ای استفاده کنیم که نیاز به نوشتن نام کامل آنها نباشد:
    using System.Text;
  • برای ساختن یک نام مستعار برای یک فضای نام یا یک نوع؛ که به آن "using رهنمون نام مستعار" می گویند.
    using Project = PC.MyCompany.Project;

کلمه کلیدی using همچنین برای ساختن "بیان using" استفاده می شود که کمک می کند مطمئن شویم اشیاء IDisposable مانند فایل ها و فونت ها بدرستی مدیریت می شوند. برای اطلاعات بیشتر بیان using را ببینید.

  • غلامعلی حسینی بهجانی
  • ۳
  • ۰

کلمه کلیدی using

کلمه کلیدی using دو کاربرد عمده دارد:

  • به عنوان رهنمون (directive) وقتی که از آن برای ساختن یک نام مستعار برای یک فضای نام (namespace) استفاده می شود. یا برای وارد کردن نوع های تعریف شده در یک فضای نام دیگر به داخل فضای نام فعلی. رهنمون using را ببینید.
  • بصورت بیان، وقتی که این کلمه کلیدی یک حوزه (scope) را در آخر زمانی که یک شیئ می خواهد از بین برود، تعریف می کند. بیان using را ببینید.

  • غلامعلی حسینی بهجانی
  • ۲
  • ۰

کلمه کلیدی unsafe

کلمه کلیدی unsafe یک زمینه (context) ناامن تعریف می کند که برای هر عملی که با اشاره گرها در ارتباط باشد، لازم است.

شما می توانید از اصلاحگر unsafe در اعلان یک نوع یا یک عضو استفاده کنید. حوزه همان نوع و یا عضوی که دارای اصلاحگر unsafe باشد به عنوان زمینه ناامن در نظر گرفته می شود. در مثال زیر متدی را با اصلاحگر unsafe اعلان کرده ایم:

unsafe static void FastCopy(byte[] src, byte[] dst, int count)
{
    // Unsafe context: can use pointers here.
}

حوزه (scope) زمینه ناامن از لیست پارامترها شروع شده و تا آخر حوزه متد ادامه دارد، بنابراین از اشاره گرها می توان در لیست پارامترها نیز استفاده کرد:

unsafe static void FastCopy ( byte* ps, byte* pd, int count ) {...}

شما می توانید از بلوک unsafe برای فعالسازی استفاده از کد ناامن در بلوک مربوطه استفاده کنید. برای مثال:

unsafe
{
    // Unsafe context: can use pointers here.
}

  • غلامعلی حسینی بهجانی
  • ۱
  • ۰

کلمه کلیدی this

کلمه کلیدی this به نمونه فعلی کلاس رجوع می کند و همچنین به عنوان اصلاحگر اولین پارامتر یک متد الحاقی (Extension Method) کاربرد دارد.

نکته

این تاپیک فقط کاربرد کلیدواژه this با نمونه های کلاس را توضیح می دهد. در مورد متدهای الحاقی بطور خلاصه باید بگویم که : متدهای الحاقی به شما این امکان را می دهند که متد ها را به نوع های موجود "اضافه" کنیم ، بدون اینکه یک نسخه مشتق شده جدید از آن نوع بسازیم ، بدون نیاز به کامپایل مجدد و یا حتی ویرایش نوع اصلی. متدهای الحاقی ، نوع خاصی از متدهای ایستا هستند، اما بگونه ای فراخوانی می شوند که انگار متد نمونه آن نوع الحاقی می باشند. برای کد نوشته شده در #C هیچ تفاوت آشکاری بین فراخوانی یک متد الحاقی و متدهایی که واقعا" در داخل نوع اعلان شده اند وجود ندارد. مشهورترین متدهای الحاقی ، عملگرهای پرس و جوی استاندارد LINQ می باشند که قابلیت های پرس و جو را به نوع های IEnumerable و <IEnumerable<T موجود اضافه می کنند. برای استفاده از عملگرهای پرس و جوی استاندارد، اول آنها را با استفاده از رهنمون using System.Linq به داخل حوزه (scope) بیاورید. از جمله متدهای الحاقی LINQ می توان به GroupBy ، OrderBy و Average اشاره کرد که پس اضافه کردن رهنمون فوق الذکر به نوع شمارشی IEnumerable اضافه می شوند.


موارد زیر کاربردهای معمول کلمه کلیدی this است:

  • غلامعلی حسینی بهجانی
  • ۱
  • ۰

کلیدواژه namespace

کلیدواژه namespace برای اعلان حوزه (scope) استفاده می شود. این حوزه فضای نام به شما اجازه می دهد که کدتان را سازماندهی کنید و راهی برای ساختن نوع های منحصر بفرد را ارائه می دهد.

namespace SampleNamespace
{
    class SampleClass { }

    interface SampleInterface { }

    struct SampleStruct { }

    enum SampleEnum { a, b }

    delegate void SampleDelegate(int i);

    namespace SampleNamespace.Nested
    {
        class SampleClass2 { }
    }
}

ملاحضات

شما می توانید یک یا بیش از یکی از موارد زیر را در داخل یک namespace اعلان کنید:

  • یک namespace دیگر
  • class
  • interface (رابط)
  • struct (ساختار)
  • enum (نوع شمارشی)
  • delegate (وکیل/نماینده)

در هرصورت چه صریحا" در فایل کد منبع (Source file) سی شارپ ، namespace را اعلان کنید و چه اینکار را انجام ندهید، کامپایلر یک namespace اضافه می کند. در بعضی مواقع به عنوان فضای نامی سراسری به این namespace بی نام، رجوع می شود که در همه فایل ها موجود است. هر شناسه ای که در فضای نامی سراسری وجود دارد، برای استفاده در یک namespace نامدار قابل دسترسی است.

  • غلامعلی حسینی بهجانی