اثر پروانه ای

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

اثر پروانه ای

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

اثر پروانه ای

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

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

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

۱۴۷ مطلب با کلمه‌ی کلیدی «برنامه نویسی» ثبت شده است

  • ۲
  • ۰

کلید واژه is

چک می کند که آیا یک شئ با یک نوع داده شده سازگار است یا نه. برای مثال، کد زیر می تواند تعیین کند که آیا یک شئ، یک نمونه از نوع MyObject است، یا یک نوع است که از MyObject مشتق شده:

if (obj is MyObject)
{
}

  • یک عبارت is اگر عبارت تعیین شده برایش غیر-تهی باشد، و شئ تعیین شده بتواند به نوع تعیین شده، بدون اتفاق افتادن هرگونه خطا،قالب ریزی شود، بصورت true ارزیابی می شود.
  • کلمه کلیدی is باعث هشدار زمان-کامپایل می شود، اگر عبارت داده شده به آن همیشه بصورت true یا همیشه بصورت false ارزیابی شود، اما معمولا" سازگاری نوع در هنگام اجرا ارزیابی می شود.
  • عملگر is نمی تواند overload یا بازتعریف شود.

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

کلیدواژه readonly

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

مثال:

در این مثال مقدار فیلد year نمی تواند در داخل متد ChangeYear تغییر کند، هرچند یک مقدار از داخل سازنده کلاس به آن انتساب داده شده است.

class Age
{
    readonly int _year;
    Age(int year)
    {
        _year = year;
    }
    void ChangeYear()
    {
        //_year = 1967; // Compile error if uncommented.
    }
}

شما فقط در شرایط زیر می توانید مقداری را به فیلد readonly انتساب دهید:

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

کلمه کلیدی internal

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

مثال:

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

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

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

interface فقط حاوی امضای متدها، خصوصیات، رویدادها و یا indexer ها است. یک کلاس و یا ساختار که interface را پیاده سازی می کند، باید اعضای رابطی که در قسمت تعریف رابط مشخص شده اند را پیاده سازی کند. در مثال زیر کلاس ImplementationClass باید متدی به نام SampleMethod که هیچ پارامتری ندارد و void را برمی گرداند را پیاده سازی کند.

interface ISampleInterface
{
    void SampleMethod();
}

class ImplementationClass : ISampleInterface
{
    // پیاده سازی صریح عضو رابط
    void ISampleInterface.SampleMethod()
    {
        // پیاده سازی متد
    }

    static void Main()
    {
        // اعلان یک نمونه رابط
        ISampleInterface obj = new ImplementationClass();

        // فراخوانی عضو
        obj.SampleMethod();
    }
}

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

باسلام!
هرگونه سوال مرتبط با برنامه نویسی بخصوص برنامه نویسی سی شارپ که دارید رو می تونید از طریق بخش "نظر" مطرح کنید تا در اسرع وقت به اونا پاسخ داده بشه. اگر ایمیلتون رو هم وارد کنید، پاسخ رو به ایمیلتون می فرستم. درضمن سوالاتی رو که به نظرم برسه برای بقیه بازدید کنندگان مفید هستند رو به همراه جواب در صفحه سوالات شما و پاسخ من قرار خواهم داد.

 

 

 

به علت زیاد شدن تعداد سوال ها، از حالا سوالات خودتون رو اینجا مطرح کنید.

متشکرم.
 
 

ʚĭɞ - ßữʈʨɾflỵ ⓔⓕⓕⓔⓒⓣ

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

به علت حقوق نشر فقط لینک مطالب رو در این پست قرار میدم. علاقه مندان می تونن اگه سوالی داشتن از خود من و یا از سایت ایران دولوپرز بپرسن. هرگونه سوال مرتبط با برنامه نویسی بخصوص برنامه نویسی سی شارپ که دارید رو می تونید از طریق بخش "نظر" مطرح کنید تا در اسرع وقت به اونا پاسخ داده بشه.


بخش اولبخش دومبخش سومبخش چهارمبخش پنجمبخش ششمبخش هفتمبخش هشتمبخش نهمبخش دهمبخش یازدهمبخش دوازدهمبخش سیزدهمبخش چهاردهمبخش پانزدهمبخش شانزدهمبخش هفدهمبخش هجدهمبخش نوزدهمبخش بیستم |


با تشکر از http://www.irandevelopers.com

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

کلمه کلیدی in

با سلام!

مطلبی رو که امروز براتون آماده کردم. یه کم با مطالب قبلی تفاوت داره. احتمالا یه کم پیچیده تر.


ترمینولوژی:

Variant : چیزی که به چیزهای دیگر وابستگی دارد اما دقیقا مشابه نیست، گوناگون، متغیر

پیشوند Contra : ضد، مخالف، نقیض

پیشوند Co : با، باهم


برای پارامترهای نوع Generic (عام)، کلمه کلیدی in تعیین می کند که پارامتر آن نوع عام Contravariant است. شما می توانید از این کلمه کلیدی (in) در رابط های (Interface) عام و نماینده ها (delegate) استفاده کنید.

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

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

بیان foreach-in

سلام! امروز با توضیح مختصری از بیان یا به اصطلاح statement تکرار کننده foreach در خدمتتون هستم. در این مقاله و مقالات دیگری که در همین وبلاگ قرار دارند، منظور من از کلمه "بیان" همان statement هست.

گروهی از دستورهای جاسازی شده درون خود را برای هرکدام از عناصر آرایه ای، یا شئ کلکسیونی ای که رابط

System.Collection.IEnumerable

یا

System.Collection.Generic.IEnumerable<T>

 را پیاده سازی (Implement) کند، تکرار می کند.

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

نوع داده float

نوع ممیز شناور 32 بیتی که معادل آن در دات نت System.Single است و دقت آن تا 7 رقم است.

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

float x=3.5f;

که درغیر اینصورت با خطای زمان کامپایل مواجه خواهیم شد.

می توان نوع های عددی صحیح و ممیز شناور را در یک عبارت با یکدیگر ترکیب کرد، که در چنین موردی نوع صحیح به نوع اعشاری تبدیل می شود. ارزیابی عبارت طبق قوانین زیر انجام می شود:

  • اگر یکی از نوع های ممیز شناور double باشد، کل عبارت بصورت double ارزیابی خواهد شد. (در عبارت های رابطه ای، ارزیابی بصورت bool خواهد بود).
  • اگر نوع double در عبارت نباشد، بصورت float ارزیابی خواهد شد.

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

  • صفر مثبت و منفی
  • بی نهایت مثبت و منفی
  • مقدار "عددی نیست" یا NaN که کوتاه شده عبارت Not-a-Number است.
  • مجموعه متناهی از مقادیر غیر صفر

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

کلمه کلیدی fixed

باسلام!


دستور fixed از اینکه GC (آشغال جمع کن یا Garbage Collector) یک متغیر جابجا شدنی را منتقل کند، جلوگیریی می کند. دستور fixed فقط در زمینه(context) برنامه نویسی مدیریت نشده مجاز است.

دستور fixed همچنین می تواند برای ساختن بافرهای با اندازه ثابت مورد استفاده قرار می گیرد. این دستور یک اشاره گر به متغیر مدیریت شده می سازد و آن متغیر را در حین اجرای دستور ثابت می کند. بدون fixed ، اشاره گرهای به متغیرهای مدیریت شده قابل انتقال، کاربرد کمی دارد، چون GC می تواند بطور پیش بینی نشده متغیر را جابجا کند. کامپایلر #C فقط اجازه واگذار کردن اشاره گر به متغیر مدیریت شده را در دستور fixed میدهد.

بعد از اجرای کد داخل دستور fixed هر متغیر پین شده (غیرقابل جابجایی)، Unpin می شود و هدف GC قرار می گیرد. بنابراین بیرون دستور fixed به آنها اشاره نکنید. اشاره گرهایی که در دستور fixed مقداردهی اولیه شده اند قابل اصلاح نیستند.

در روش مدیریت نشده، می توان حافظه پشته را که مورد هدف GC قرار نمی گیرد را اختصاص داد؛ و بنابراین نیازی به pin شدن ندارد.

unsafe static void Test(){
    Poin pt=new Point();
    fixed(int* p=&pt.x){
        *p=1;
    }
}

در مورد دستور unsafe بعدا توضیح خواهم داد.

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