اثر پروانه ای

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

اثر پروانه ای

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

اثر پروانه ای

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

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

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

۷۴ مطلب در ارديبهشت ۱۳۹۲ ثبت شده است

  • ۱
  • ۰

کلمه کلیدی null

کلمه کلیدی null یک لیترال (ثابت بی نام) است که یک ارجاع تهی را نشان می دهد، ارجاعی که به هیچ شیئی اشاره نمی کند. null مقدار پیش فرض متغیرهای نوع مرجع است. نوع های مقداری معمولی نمی توانند null باشند. هر چند نسخه 2.0 سی شارپ نوع های مقداری تهی پذیر (nullable) را مطرح کرده است.

مثال زیر برخی رفتارهای کلمه کلیدی null را توضیح می دهد:

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

کیس یا دبه؟ :|

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

کلمه کلیدی int ، یک نوع صحیح عددی را تعریف می کند که مقادیر را بر اساس اندازه و محدوده زیر ذخیره می کند.

  • نوع : int
  • محدوده : از 2,147,483,648- تا 2,147,483,647
  • اندازه : صحیح علامتدار 32-بیتی
  • نوع دات نتی : System.Int32

لیترال ها

شما می توانید یک متغیر از نوع int را بصورت زیر اعلان و مقداردهی اولیه کنید:

int i = 123;

وقتی یک لیترال صحیح دارای هیچ پسوندی نباشد، نوع آن لیترال اولین نوعی است که مقدار آن لیترال بتواند در آن قرار گیرد: int، uint، long، ulong . در این مثال نوع لیترال int است.

تبدیلات

از نوع int به نوع های long، float، double یا decimal تبدیل ضمنی از پیش تعریف شده وجود دارد. برای مثال:

// '123' is an int, so an implicit conversion takes place here:
float f = 123;

از نوع های  sbyte، byte، short، ushort یا char به نوع int تبدیل ضمنی از پیش تعریف شده موجود است. برای مثال، بیان انتساب زیر بدون عملگر قالب ریزی (cast) خطای کامپایل تولید خواهد کرد:

long aLong = 22;
int i1 = aLong;       // Error: no implicit conversion from long.
int i2 = (int)aLong;  // OK: explicit conversion.

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

int x = 3.0;         // Error: no implicit conversion from double.
int y = (int)3.0;    // OK: explicit conversion.
  • غلامعلی حسینی بهجانی
  • ۱
  • ۰

سرگرمی

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

جدول کلمات کلیدی #C

 

کلمات کلیدی، شناسه هایی از پیش تعریف شده و رزرو شده هستند که معانی خاصی برای کامپایلر دارند. شما نمی توانید از این کلمات رزرو شده به عنوان شناسه (مثلا اسم کلاس یا متغیر) در برنامه تان استفاده کنید، مگر اینکه قبل از چنین شناسه هایی از پسوند @ استفاده کنید. برای مثال if@ یک شناسه معتبر است ولی if معتبر نیست ، زیرا if یک کلمه کلیدی است.

جدول اول در این تاپیک، لیست کلیدواژه هایی را که شناسه هایی رزرو شده در هر قسمتی از برنامه #C هستند را آورده است. جدول دوم در این مطلب شامل لیست کلیدواژه های زمینه ای (وابسته به قراین و شرایط خاصی که آن کلمه کلیدی در آن قرار گرفته است) در سی شارپ است. کلمات کلیدی زمینه ای فقط در یک زمینه (context) محدود از برنامه، معنای ویژه  ای دارند و از این کلمات می توان در بیرون از آن زمینه به عنوان شناسه استفاده کرد. بطور کلی، اگر کلمات کلیدی جدیدی به زبان #C اضافه شود، برای اجتناب از خرابی نسخه های قبلی برنامه های نوشته شده، آن کلمات جدید به لیست کلیدواژه های زمینه ای اضافه خواهد شد.

جدول در ادامه مطلب...

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

قید 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

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

برای مخفی کردن یک عضو ارثی، آن را در کلاس مشتق شده با یک نام یکسان اعلان کنید و آنرا با اصلاحگر new اصلاح کنید. برای مثال:

public class BaseC
{
    public int x;
    public void Invoke() { }
}
public class DerivedC : BaseC
{
    new public void Invoke() { }
}

در این مثال، BaseC.Invoke توسط DerivedC.Invoke مخفی است. مخفی سازی روی فیلد x مؤثر واقع نمی شود ، به این دلیل که با یک نام مشابه مخفی نشده است.

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

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

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