اثر پروانه ای

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

اثر پروانه ای

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

اثر پروانه ای

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

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

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

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

  • ۲
  • ۰

کلیدواژه ushort

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

  • نوع: ushort
  • محدوده: 0 تا 65,535
  • اندازه: صحیح بدون علامت 16-بیتی
  • نوع دات نتی: System.UInt16

لیترال ها

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

ushort myShort = 65535;

در اعلان بالا، لیترال صحیح 65535 بطور ضمنی از int به ushort تبدیل می شود. اگر لیترال عددی صحیح از محدوده ushort تجاوز کند، یک خطای کامپایل رخ می دهد.

در هنگام فراخوانی متدهای overload شده باید از عملگر قالبریز (cast) استفاده کرد. برای مثال متدهای overload شده زیر را که دارای پارامترهای ushort و int هستند را در نظر بگیرید:

public static void SampleMethod(int i) {}
public static void SampleMethod(ushort s) {}

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

جدول زیر تبدیلات عددی ضمنی از پیش تعریف شده را نشان می دهد. تبدیلات ضمنی ممکن است در بسیاری مواقع ، از جمله فراخوانی متد و بیان های انتساب ، اتفاق بیافتد.


از به
sbyte short, int, long, float, double, یا decimal
byte short, ushort, int, uint, long, ulong, float, double, یا decimal
short int, long, float, double, یا decimal
ushort int, uint, long, ulong, float, double, یا decimal
int long, float, double, یا decimal
uint long, ulong, float, double, یا decimal
long float, double, یا decimal
char ushort, int, uint, long, ulong, float, double, یا decimal
float double
ulong float, double, یا decimal


ملاحظات

  • تبدیلات از int و uint یا long به float و از long به double ممکن است باعث از دست رفتن دقت شود، اما به مقدار ضرری وارد نمی شود.
  • هیچ تبدیل ضمنی ای به نوع char وجود ندارد.
  • هیچ تبدیل ضمنی ای بین نوع های ممیز-شناور و decimal وجود ندارد.
  • یک عبارت ثابت از نوع int می تواند به sbyte ، byte ، short ، ushort ، uint یا ulong تبدیل شود، مقدار تعیین شده عبارت ثابت در محدوده نوع مقصد می باشد.

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

کلمه کلیدی long ، نوع داده ای صحیحی را مشخص می کند که مقادیر وابسته به اندازه و محدودیت نشان داده شده زیر را ذخیره می کند:

  • نوع: long
  • محدوده: از –9,223,372,036,854,775,808 تا 9,223,372,036,854,775,807
  • اندازه: صحیح علامتدار 64 بیتی
  • نوع دات نتی: System.Int64

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

سلام!

کلمه کلیدی implicit برای اعلان کردن عملگر کاربر-تعریف تبدیل نوع (Casting) استفاده می شود. برای فعال کردن تبدیل نوع ضمنی بین یک نوع کاربر-تعریف و یک نوع دیگر، اگر این تبدیل تضمین می کند که هیچ تخریب داده ای اتفاق نمی افتد، استفاده می شود.

class Digit
{
    public Digit(double d) { val = d; }
    public double val;
    // ...other members
    // User-defined conversion from Digit to double
    public static implicit operator double(Digit d)
    {
        return d.val;
    }
    //  User-defined conversion from double to Digit
    public static implicit operator Digit(double d)
    {
        return new Digit(d);
    }
}
class Program
{
    static void Main(string[] args)
    {
        Digit dig = new Digit(7);
        //This call invokes the implicit "double" operator
        double num = dig;
        //This call invokes the implicit "Digit" operator
        Digit dig2 = 12;
        Console.WriteLine("num = {0} dig2 = {1}", num, dig2.val);
        Console.ReadLine();
    }
}

  • تبدیل های ضمنی با حذف قالب ریزی های (cast) غیرضروری، می توانند خوانایی برنامه و کد منبع را افزایش دهند. هرچند چون تبدیلات ضمنی، برنامه نویسان را در قالب ریزی صریح از یک نوع به نوع دیگر مجبور نمی کند، برای جلوگیری از نتایج ناخواسته باید مواظب بود.
  • در کل عملگر تبدیل نوع ضمنی، هرگز نباید استثنایی را پرتاب کند و هرگز نباید اطلاعات را از بین ببرد یا در آنها خدشه ای ایجاد کند، تا بتواند بصورت امن و بدون مواظبت برنامه نویس استفاده شود.
  • اگر یک عملگر تبدیل نتواند شرایط بالا را فراهم کند باید بصورت explicit تعریف شود.
  • غلامعلی حسینی بهجانی