اثر پروانه ای

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

اثر پروانه ای

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

اثر پروانه ای

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

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

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

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

  • ۱
  • ۰

قید 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) مورد استفاده قرار گیرند، کاربرد دارد.

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

نوع داده ای decimal

کلیدواژه decimal به یک نوع داده ای 128-بیتی اشاره دارد. در مقایسه با نوع های ممیز-شناور، نوع decimal دقت بیشتر و محدوده کمتری دارد، که آنرا برای محاسبات مالی و پولی مناسب کرده است. 

محدوده تقریبی و دقت نوع decimal در زیر آمده است:

  • نوع: decimal
  • محدوده تقریبی:

    (-7.9 x 1028 to 7.9 x 1028) / (100 to 28)

  • دقت: 29-28 رقم معنادار
  • نوع دات نتی: System.Decimal

    لیترال ها

    اگر شما می خواهید یک لیترال عددی حقیقی داشته باشید که با آن مانند decimal رفتار شود، از پسوند m یا M استفاده کنید، برای مثال:

    decimal myMoney = 300.5m;

    بدون پسوند m ، با عدد مانند double رفتار شده و تولید یک خطای کامپایل می نماید.

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

    کلیدواژه const

    کلمه کلیدی const ، در واقع اصلاحگری برای اعلان فیلد، یا متغیر محلی است و تعیین می کند که مقدار فیلد یا متغیر محلی ثابت است، به این معنی که مقادیر آنها قابل دستکاری نیست.

    const int x = 0;
    public const double gravitationalConstant = 6.673e-11;
    private const string productName = "Visual C#";

    ملاحظات

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

    یک عبارت ثابت، عبارتی است که می تواند در زمان کامپایل بطور کامل ارزیابی شود (نیاز به پردازش های زمان اجرا نداشته باشد). بنابراین ، تنها مقادیر مجاز برای ثابت های نوع مرجع، string و null می باشد.

    اعلان ثابت می تواند چندین ثابت را به شکل زیر اعلان کند:

    public const double x = 1.0, y = 2.0, z = 3.0;

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

    کلمه کلیدی char

    کلمه کلیدی char برای اعلان کاراکتر یونیکد (Unicode) که محدوده آن در زیر آمده استفاده می شود. کاراکترهای یونیکد، کاراکترهایی 16-بیتی هستند که برای نمایش اکثر زبان های نوشتاری شناخته شده در دنیا مورد استفاده قرار می گیرند.

    • نوع: char
    • محدوده: از U+0000 تا U+ffff
    • اندازه: کاراکتر 16-بیتی یونیکد
    • نوع دات نتی: System.Char


    لیترال ها:

    ثابت های از نوع char می توانند بصورت لیترال های کاراکتری، توالی گریز شانزده شانزدهی (Hexadecimal escape swquence)، یا نماینده یونیکد، نوشته شوند. شما همچنین می توانید کد های کاراکتری صحیح را قالب ریزی (cast) کنید. در مثال زیر چهار متغیر char با کاراکتر X ، مقداردهی اولیه شده اند:

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

    کلیدواژه class

    کلاس ها با استفاده از کلمه کلیدی class ، بصورتی که در مثال زیر نشان داده شده، اعلان می شوند.

    class TestClass
    {
        // Methods, properties, fields, events, delegates 
        // and nested classes go here.
    }

    ملاحظات

    بر خلاف ++C ، در #C فقط یک ارث بری مجاز است. به بیانی دیگر، پیاده سازی یک کلاس فقط می تواند از یک کلاس پایه ای ، ارث بری شود. هرچند، یک کلاس می تواند بیش از یک رابط (interface) را پیاده سازی (implement) کند. جدول زیر مثال هایی از ارث بری کلاس و پیاده سازی رابط را نشان می دهد.

    ارث بری مثال
    بدون ارث بری
    class ClassA { }
    ارث بری یگانه
    class DerivedClass: BaseClass { }
    بدون ارث بری، پیاده سازی دو رابط
    class ImplClass: IFace1, IFace2 { }
    ارث بری یگانه، پیاده سازی یک رابط
    class ImplDerivedClass: BaseClass, IFace1 { }

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