اثر پروانه ای

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

اثر پروانه ای

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

اثر پروانه ای

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

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

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

۹۵ مطلب با کلمه‌ی کلیدی «آموزش» ثبت شده است

  • ۱
  • ۱

کلمه کلیدی struct

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

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

ملاحظات

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

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

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

نوع string یک سری از کاراکترهای یونیکد شامل صفر یا بیش از صفر کاراکتر را نشان می دهد. string نام مستعاری برای نوع دات نتی String می باشد.

با اینکه string یک نوع مرجع است، عملگرهای تساوی (== و =!) برای مقایسه مقادیر اشیاء رشته ای (string) تعریف شده اند نه ارجاع ها. این کار آزمایش برابری رشته ها را قابل فهم تر می کند. برای مثال:

string a = "hello";
string b = "h";
// Append to contents of 'b'
b += "ello";
Console.WriteLine(a == b);
Console.WriteLine((object)a == (object)b);

مثال قبل True را نمایش داده سپس False به نمایش در می آید، زیرا محتویات رشته ها با هم برابرند، اما a و b به نمونه رشته یکسانی اشاره نمی کنند.

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

اصلاحگر 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;
    }
}

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

کلیدواژه sizeof

در نوع های مدیریت نشده، برای بدست آوردن اندازه آن نوع بر حسب بایت استفاده می شود. نوع های مدیریت نشده شامل نوع های توکار (built-in) که در جدولی که بعدا" می آید لیست شده اند و همچنین نوع های زیر هستند:

  • نوع های شمارشی (Enum types)
  • نوع های اشاره گر (Pointer types)
  • ساختارهای کاربر-تعریف که حاوی هیچ فیلد یا پراپرتی نوع مرجع نباشد

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

// Constant value 4:
int intSize = sizeof(int); 

ملاحظات

از نسخه 2.0 سی شارپ به بعد، اعمال sizeof روی نوع های توکار ، دیگر نیازی به استفاده از شیوه unsafe ندارد.

عملگر sizeof را نمی توان overload کرد. مقدار برگشتی توسط عملگر sizeof از نوع int است. جدول زیر مقادیر ثابتی که جایگزین عبارت sizeof با عملوندهای ورودی از نوع های خاص را نشان می دهد:

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

کلیدواژه short

کلمه کلیدی short یک نوع داده ای صحیح معرفی می کند که مقادیر را طبق شرایط زیر ذخیره می کند.

  • نوع : short
  • محدوده : 32,768- تا 32,767
  • اندازه : صحیح علامتدار 16-بیتی
  • نوع دات نتی: System.Int16

لیترال ها

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

short x = 32767;

در اعلان قبل، لیترال صحیح 32767 بطور ضمنی از int به short تبدیل شده است. اگر لیترال صحیح در محل ذخیره سازی short جا نشود، یک خطای کامپایل رخ می دهد.

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

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

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

کلمه کلیدی sealed

اصلاحگر sealed وقتی به یک کلاس اعمال می شود، از ارث بری کلاس های دیگر از این کلاس جلوگیری می کند. در مثال زیر کلاس B از کلاس A ارث بری می کند، اما هیچ کلاسی نمی تواند از کلاس B ارث بری کند.

class A {}    
sealed class B : A {}

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

مثال

در مثال زیر ، Z از Y ارث می برد اما Z نمی تواند تابع مجازی F را که در X اعلان شده و در Y مهروموم (sealed) شده را رونویسی (override) کند.

class X
{
    protected virtual void F() { Console.WriteLine("X.F"); }
    protected virtual void F2() { Console.WriteLine("X.F2"); }
}
class Y : X
{
        sealed protected override void F() { Console.WriteLine("Y.F"); }
        protected override void F2() { Console.WriteLine("X.F3");}
}
class Z : Y
{
    // Attempting to override F causes compiler error CS0239.
    // protected override void F() { Console.WriteLine("C.F"); }

    // Overriding F2 is allowed.
    protected override void F2() { Console.WriteLine("Z.F2"); }
}

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

کلمه کلیدی sbyte

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

  • نوع: sbyte
  • محدوده: 128- تا 127
  • اندازه: صحیح علامت دار 8-بیتی
  • نوع دات نتی: System.SByte

لیترال ها

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

sbyte sByte1 = 127;

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

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

public static void SampleMethod(int i) {}
public static void SampleMethod(sbyte b) {}

استفاده از قالبریز sbyte تضمین می کند که نوع درست فراخوانی خواهد شد. برای مثال:

// Calling the method with the int parameter:
SampleMethod(5);
// Calling the method with the sbyte parameter:
SampleMethod((sbyte)5);

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

کلیدواژه return

بیان return روند اجرای متدی را که در آن قرار گرفته را متوقف کرده و کنترل را به جایی که متد فراخوانی شده بازمی گرداند. این بیان همچنین می تواند یک مقدار اختیاری را بازگرداند. اگر نوع برگشتی متد void باشد، می توان از بیان return صرف نظر کرد.

اگر بیان return داخل یک بلوک try قرار گرفته باشد، قبل از اینکه کنترل به محل فراخوانی متد برگردد، بلوک finally (درصورت وجود) اجرا می شود.

مثال

در مثال زیر، متد()A متغیر area را بصورت مقدار double برگشت می دهد.

class ReturnTest
{
    static double CalculateArea(int r)
    {
        double area = r * r * Math.PI;
        return area;
    }

    static void Main()
    {
        int radius = 5;
        double result = CalculateArea(radius);
        Console.WriteLine("The area is {0:0.00}", result);

        // Keep the console open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
// Output: The area is 78.54
  • غلامعلی حسینی بهجانی
  • ۱
  • ۰

کلمه کلیدی ref

کلمه کلیدی ref باعث می شود که آرگومان ها بصورت ارجاعی پاس داده شوند. اثر آن به این شکل است که وقتی روند اجرایی برنامه به جایی که متد فراخوانی شده بر می گردد، هر تغییری که متد روی پارامتر ref انجام داده بر روی آن متغیر منعکس می شود.

نکته

مفهوم پاس دادن با مرجع را با مفهوم نوع های مرجع اشتباه نگیرید. این دو مفهوم با هم ارتباطی ندارند؛ یک پارامتر متد فارغ از اینکه نوع مقداری باشد یا نوع مرجع می تواند با ref اصلاح شود. بنابراین وقتی یک نوع مقداری بصورت ارجاعی به متد پاس داده می شود هیچ عمل boxing انجام نمی گیرد.


برای استفاده از یک پارامتر ref ، هم در اعلان متد و هم در فراخوانی متد باید از کلیدواژه ref استفاده کرد. برای مثال:

class RefExample
{
    static void Method(ref int i)
    {
        i = 44;
    }
    static void Main()
    {
        int val = 0;
        Method(ref val);
        // val is now 44
    }
}

آرگومانی که به یک پارامتر ref پاس داده می شود باید اول مقداردهی اولیه شود. از این لحاظ ref با out که آرگومان هایش مجبور نیستند قبل از پاس داده شدن صریحا" مقداردهی اولیه شوند، متفاوت است.

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

کلمه کلیدی public

کلمه کلیدی public یک اصلاحگر سطح دسترسی برای نوع ها و اعضای نوع است. دسترسی public بیشترین سطح دسترسی مجاز است. هیچ محدودیتی در دستیابی به اعضای public (عمومی) وجود ندارد. مانند مثال:

class SampleClass
{
    public int x; // No access restrictions.
}

مثال

در مثال زیر، دو کلاس با نامهای PointTest و MainClass اعلان شده اند. اعضای عمومی x و y از کلاس PointTest مستقیما" توسط MainClass دستیابی می شوند.

class PointTest
{
    public int x; 
    public int y;
}

class MainClass4
{
    static void Main() 
    {
        PointTest p = new PointTest();
        // Direct access to public members:
        p.x = 10;
        p.y = 15;
        Console.WriteLine("x = {0}, y = {1}", p.x, p.y); 
    }
}
// Output: x = 10, y = 15

اگر سطح دسترسی public را به private یا protected تغییر دهید، پیغام خطای زیر را دریافت خواهید کرد:

'PointTest.y' is inaccessible due to its protection level.

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