اثر پروانه ای

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

اثر پروانه ای

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

اثر پروانه ای

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

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

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

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

  • ۳
  • ۰

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

سلام.

امیدوارم به اندازه کافی تمرین کرده باشید. خوب بدون معطلی به ادامه درس می پردازیم. تا اینجا فقط داریم در مورد خود زبان سی شارپ یه چیزایی (هرچند خیلی ساده و مقدماتی) یاد می گیریم. اما به نظر میرسه برای اینکه بتونیم واقعا برنامه نویس باشیم به چیزی بیش از یادگیری تئوری یک زبان برنامه نویسی نیاز هست و آن هم 3 چیز مهم هست. تمرین تمرین تمرین!!

در این درس می خواهیم در مورد Class ها بیشتر صحبت کنیم. باید بدونیم که برنامه نویسی سی شارپ کلا" بر اساس اشیاء و کلاس ها می باشد، در صورتی که اکثر افرادی که در این زبان برنامه نویسی می‌کنند، با این روش (برنامه نویسی شئ گرا) برنامه نویسی نمی کنند. یعنی ممکن است یک زبان برنامه نویسی ذاتا" شئ گرا باشد، اما یک برنامه نویس کمترین استفاده را از این امکان فوق‌العاده برنامه نویسی داشته باشد. اما قبل از اینکه بتوانیم برنامه ای را بصورت شئ گرا بنویسیم باید اساس این روش برنامه نویسی که همان Class ها هستند را بهتر بشناسیم. قبلا از لحاظ تئوریک با مفهوم کلاس ها و اشیاء آشنا شدیم.

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

کلمه کلیدی struct

نوع struct یک نوع مقداری است که بطور معمول برای کپسوله کردن گروهای کوچک از متغیرهای وابسته به هم مورد استفاده قرار می گیرد. برای مثال مختصات یک مستطیل یا مشخصات یک فقره کالا از صورت حساب. مثال زیر یک اعلان ساده struct را نشان می دهد:

public struct Book
{
    public decimal price;
    public string title;
    public string author;
}

ملاحظات

ساختارها (struct) همچنین می توانند حاوی سازنده ها، ثابت ها، فیلدها، متدها، پراپرتی ها، شاخصگرها، عملگرها، رویدادها و نوع های تودرتو باشند، هرچند اگر به چندین عضو از چنین اعضایی نیاز باشد، شما می بایست بجای ساختن struct به ساختن کلاس فکر کنید.

ساختارها می توانند یک رابط را پیاده سازی کنند ولی نمی توانند از ساختارهای دیگر ارث بری کنند. به همین علت اعضای ساختار را نمی توان بصورت protected اعلان کرد.

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

اصلاحگر static

از اصلاحگر static برای اعلان یک عضو ایستا استفاده کنید. اعضای ایستا (static) بجای اینکه به شئی خاصی متعلق باشند ، به خود نوع وابستگی دارند. اصلاحگر static را می توان با کلاس ها ، فیلدها ، متدها ، پراپرتی ها ، عملگرها ، رویداد ها و سازنده ها استفاده کرد ، اما نمی توان از آنها برای شاخصگرها (indexer) ، مخرب ها یا نوع هایی دیگر بجز کلاس ها استفاده کرد.

مثال

کلاس زیر بصورت static اعلان شده و فقط حاوی متدهای static می باشد:

static class CompanyEmployee
{
    public static void DoSomething() { /*...*/ }
    public static void DoSomethingElse() { /*...*/  }
}

یک ثابت یا اعلان نوع بصورت ضمنی عضوی static است.

نمی توان از طریق یک نمونه (instance) به یک عضو ایستا رجوع کرد. در عوض ، می توان از طریق نام نوع به آن مراجعه کرد. برای مثال ، کلاس زیر را در نظر بگیرید:

public class MyBaseC
{
    public struct MyStruct
    {
        public static int x = 100;
    }
}

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

قید new

توضیح مختصری در مورد قید ها (Constraint) : 

وقتی یک کلاس جنریک (وابسته به جنس و نوع ورودی) تعریف می کنید، می توانید یکسری محدودیت ها را درمورد نوع ورودی کلاس اعمال کنید. نوع ورودی همان نوعی است که بعدا" کاربر در هنگام نمونه سازی از کلاس جنریک آنرا بصورت پارامتر به کلاس می دهد. اگر کاربری که می خواهد از کلاس جنریک استفاده کند، تلاش کند که کلاس شما را با یک نوع که بوسیله قید مشخص نکرده اید را نمونه سازی کند، کامپایلر یک خطا تولید می کند. این محدودیت های ایجاد شده را قید یا (Constraint) می گویند. قید ها با کلمه کلیدی زمینه ای where مورد استفاده قرار می گیرند.

قید new مشخص می کند که هر آرگومان نوع در اعلان کلاس جنریک (generic/وابسته به جنس) باید دارای یک متد سازنده بدون پارامتر باشد. برای استفاده از قید new ، نوع (type) نباید abstract (چکیده) باشد.

مثال

وقتی که کلاس جنریک شما نمونه هایی جدید از نوعی خاص می سازد، قید new را به آن پارامتر نوع اعمال کنید. بصورتی که در مثال زیر نشان داده شده:

class ItemFactory<T> where T : new()
{
    public T GetNewItem()
    {
        return new T();
    }
}

هرگاه قید new را به همراه قیود دیگر بصورت همزمان استفاده می کنید، قید new باید آخرین قید باشد:

public class ItemFactory2<T>
        where T : IComparable, new()
{
}

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

عملگر new

برای ساختن شیئ ها و احضار متدهای سازنده مورد استفاده قرار می گیرد. برای مثال:

Class1 obj  = new Class1();

همچنین برای ساختن نمونه هایی از نوع های بی نام ، کاربرد دارد:

var query = from cust in customers
            select new {Name = cust.Name, Address = cust.PrimaryAddress};

عملگر new همچنین برای احضار (invoke) کردن متد سازنده پیش فرض نوع های مقداری مورد استفاده دارد. مثلا":

int i = new int();

در بیان قبل، i با صفر مقداردهی اولیه می شود، که مقدار پیش فرض برای نوع int می باشد. تاثیر این بیان مشابه بیان زیر است:

int i = 0;

به خاطر داشته باشید که اعلان یک متد سازنده پیش فرض برای یک struct (ساختار) یک خطا محسوب می شود، زیرا همه نوع های مقداری بصورت پیش فرض دارای یک متد سازنده public (عمومی) هستند. برای تنظیم مقدار اولیه نوع struct ، امکان اعلان متدهای سازنده دارای پارامتر بر روی نوع struct وجود دارد، اما این کار فقط زمانی انجام می شود که مقداری به غیر از مقدار پیش فرض مورد نیاز باشد.

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

کلمه کلیدی new

در #C ، کلمه کلیدی new را می توان بصورت عملگر (operator) ، اصلاحگر (modifier) و یا یک قید (constraint) مورد استفاده قرار داد.

  • عملگر new

    برای ساختن شیئ ها و احضار متد سازنده (Constructor) کلاس مربوطه استفاده می شود.

  • اصلاحگر new

    برای پنهان کردن یک عضو ارثی از اعضای یک کلاس پایه ای مورد استفاده قرار می گیرد.

  • قید new

    برای محدود کردن نوع هایی که ممکن است به عنوان آرگومان هایی برای پارامتر نوع در اعلان جنریک (generic) مورد استفاده قرار گیرند، کاربرد دارد.

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