0

آموزش جامع Visual C#.NET

 
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 154065
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به: آموزش جامع Visual C#.NET

کنترل FolderBrowserDialog
گاهی اوقات ممکنه در برنامه نیاز داشته باشید به کاربر اجازه بدید که به جای انتخاب یک فایل، یک فولدر را مشخص کند، برای این کار از این کنترل استفاده میکنیم
 
 
خواص مهم کنترل FolderBrowserDialog
 
Description : مشخص کننده متنی است که به عنوان توضیح در کادر نمایش داده می شود.
 
RootFolder : مشخص کننده آدرس فولدری است که به صورت پیش فرض باید در کادر نمایش داده شود.
 
SelectedPath : مشخص کننده آدرس مسیری است که به وسیله کاربر انتخاب شده است.
 
ShowNewFolderButton : مشخص می کنه آیا دکمۀ Make New Folder در کادر نمایش داده شود یا نه؟

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

پنج شنبه 24 اردیبهشت 1394  3:37 PM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 154065
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به: آموزش جامع Visual C#.NET

ساختار ها (struct) <بخش اول>
ساختار یک نوع مقداری (value type) است. نحوه تعریف و پیاده سازی آنها بسیار شبیه کلاس می باشد.
 
تفاوت بین کلاس و ساختار :
 
کلاس ها انواع ارجاعی (reference types) هستند. انواع مقداری، مقادیرشان را در همان نقطه ای از حافظه که در آن تعریف شده اند ذخیره می کنند، اما انواع ارجاعی اشاره گری را به شیئی در حافظه نگهداری می کنند.
 
در ساختار ها ما قادر به پیاده سازی ارث بری نیستیم در عوض ارثب ری واسط ها را می تونیم در اختیار داشته باشیم و استفاده کنیم
 
در دات نت انواع داده بسیار زیادی وجود دارند که از نوع ساختار هستند که بصورت پیش ساخته هستند. مثلا : System.int32 از نوع System.Single 
 
پیاده سازی یک ساختار :
 
رفتار های بین کلاس ها و ساختار ها کاملا با یکدیگر متفاوت می باشند، اما پیاده سازی آنها به یکدیگر بسیار شبیه است ، دقت کنید که تفاوت در استفاده از کلمه کلیدی Struct بجای Class می باشد به مثال زیر دقت کنید
 
کد:
struct Rectangle
{
    private int m_width;
 
    public int Width 
    {
        get
        {
            return m_width;
        }
        set
        {
            m_width = value;
        }
    }
 
    private int m_height;
 
    public int Height
    {
        get
        {
            return m_height;
        }
        set
        {
            m_height = value;
        }
    }
}
 
 
در کد بالا ساختار ما یک مستطیل با خاصیت های طول و عرض می باشد.
 
دوستان توجه کنید که تفاوت درکلمۀ کلیدی class است که جای آن از struct استفاده شده است.

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

پنج شنبه 24 اردیبهشت 1394  3:37 PM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 154065
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به: آموزش جامع Visual C#.NET

 ساختار ها (struct) <بخش دوم>
افزودن یک متد به یک ساختار :
 
در پست قبل توضح دادم که چطوری میشه یک ساختارو پیاده سازی کرد، در این پست اضافه کردن یک متد به ساختارو توضیح میدم
تعریف متد در یک ساختار نیز مشابه با کلاس ها هست. در مثال زیر اضافه کردن متد add را به ساختار Rectangle میتونید ببینید که به چه شکل انجام میشه
 
 
کد:
struct Rectangle
{
    private int m_width;
 
    public int Width 
    {
        get
        {
            return m_width;
        }
        set
        {
            m_width = value;
        }
    }
 
    private int m_height;
 
    public int Height
    {
        get
        {
            return m_height;
        }
        set
        {
            m_height = value;
        }
    }
 
    public Rectangle(int width, int height)
    {
        m_width = width;
        m_height = height;
    }
 
    public Rectangle Add(Rectangle rect)
    { 
        Rectangle newRect = new Rectangle();
 
        newRect.Width = Width + rect.Width; newRect.Height = Height + rect.Height;
 
        return newRect; 
    }
}
 
 
متد add عرض و ارتفاع مستطیل فعلی را با عرض و ارتفاع مستطیلی که به عنوان پارامتر بهش ارسال میشه رو جمع میکنه و مستطیل جدیدی رو با عرض و ارتفاع جدید به عنوان خروجی بر میگردونه.

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

پنج شنبه 24 اردیبهشت 1394  3:37 PM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 154065
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به: آموزش جامع Visual C#.NET

 شی گرائی (بخش اول)
پیدایش شی گرایی
 
برنامه نويسي شی گرا در اوايل دهه ۱۹۷۰ توسط آلن کی Alan Kay طراحی شده يعنی اولين قدمهای اين سبک برنامه نويسی توسط آلن کی برداشته شده است. اولين زبان شی گرا توسط آلن کی طراحي شد. اسم اين زبان Small Talk می باشد.
آلن کی گفته بود که : آن چيزی که باعث شد اين فکر به ذهنم برسد نحوه عملکرد سلولهای زيست محيطی بود. يعنی اين سبک برنامه نويسی از روی سلولهای جاندارها الگو برداری شده است.
 
Small Talk مانند سلولهای جانداری عمل می کند. يعنی آلن کی در تمامی قسمتهای اين زبان تعيين کرده بود که اشيا با هم ارتباط برقرار می کنند و دارای شناسنامه ای هستند و همچنين مستقل از همديگر کار می کنند.
 
اصول اوليه ای که آلن کی برای برنامه نويسی شی گرا تعيين کرده بود عباتند از :
 
1. هر چيزی يک شی است.
2. هر برنامه ای شامل اشيا است که اشيا با ارسال پيام به يکديگر تعيين می کنند که چه کاری بايد الان انجام شود.
3. هر شی يک حافظه (Memory) برای خودش دارد که بتوان به وسيله آن اشيای ديگر را ساخت.
4. هر شی خودش از يک کلاس (Class) است.
 
برنامه نویسی شی گرا
 
برنامه نویسی شی گرا شیوه نوینی ست که در آن می توان قطعاتی را ایجاد کرد و در برنامه های مختلف مورد استفاده قرار داد. قابلیت خوانایی برنامه هایی که در این روش نوشته می شوند بالا بوده، تست، عیب یابی و اصلاح آن ها آسان است. شی گرایی ، بر اشیا تاکید دارد. در برنامه نویسی شی گرا اشیا به صورت انتزاع مطرح می شوند.
 
یک شیوه برنامه نویسی است که ساختار یا بلوک اصلی اجزای آن ، شی ها می باشند. در واقع در این شیوه برنامه نویسی ، برنامه به شی گرایش پیدا می کند. به این معنا که داده ها و توابعی که قرار است بر روی این داده ها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمع بندی شده و یک واحد (شی) را تشکیل داده و نسبت به محیط بیرونن خود، کپسوله می شوند و از این طریق ، توابع خارج از آن شی، دیگر امکان ایجاد تغییر در داده های درون آن شی را ندارند.
 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

پنج شنبه 24 اردیبهشت 1394  3:37 PM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 154065
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به: آموزش جامع Visual C#.NET

 شی گرائی (بخش دوم)
شی چيست؟ 
 
در شی گرايی به ((شکل ظاهر)) در اصطلاح، صفت يا Attribute و به عملی که شی انجام می دهد، رفتار يا Behavior می گويند.
 
برای مثال يک صندلی را در نظر بگيريد. صندلی صفات مختلفی دارد ولی رفتار خاصی ندارد. مثلا پايه های صندلی جزو صفات آن بشمار می روند. با کمی دقيق تر شدن می توان از اين صفات برای توصيف صندلی استفاده کرد. بعنوان مثال تعداد پايه های صندلی می تواند عددی بين 3 تا 5 باشد. محل نشستن صندلی می تواند جمله ای در وصف جنس آن و مقدار مصرف ماده سازنده آن باشد. پشتی صندلی را نيز می توان بعنوان متغييری boolean در نظر گرفت چراکه برخی از صندلی ها فاقد پشتی هستند. با استفاده از اين سه صفت ساده، به راحتی می توان صندلی را توصيف نمود و با همين سه صفت ميتوان گونه های مختلفی از صندلی را نيز توصيف کرد.
 
منظور از رفتار، عملی است که يک شی انجام می دهد. از اينرو برای صندلی نمی توان به سادگی صفات آن، رفتاری را متصور شد. مثلا می توانيم بگویيم تاشو بودن صندلی يکی از رفتارهای آن می تواند باشد، چراکه عملی است كه می تواند يک صندلی آنرا انجام دهد. 
 
 
از ديد انتزاعی، زمان را نيز می توان بعنوان يک شی در نظر گرفت. صفات زمان، ساعت، دقيقه و ثانيه هستند و گذشت زمان، رفتار آن است. در ايجاد شی هيچ محدوديتی وجود ندارد و همه چيز به تخيل شما باز ميگردد.

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

پنج شنبه 24 اردیبهشت 1394  3:37 PM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 154065
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به: آموزش جامع Visual C#.NET

 ساختار ها (struct) <بخش سوم>
فراخوانی متد یک ساختار :
 
در دو بخش قبلی دربارۀ ساختارها توضیح دادم خب در این پست به بحث فراخوانی متد در ساختار می پردازیم
 
حالا میخواییم ببینیم چطور می تونیم متد های یک ساختار رو از خارج آن فراخوانی کنیم
 
برای اینکار ابتدا باید نمونه ای از ساختار را ایجاد کنیم و سپس مانند مثال زیر فراخوانی متد مورد نظر را انجام بدیم.
به مثال زیر دقت کنید 
 
کد:
using System;
 
class StructExample
{
    static void Main()
    {
    Rectangle rect1 = new Rectangle();
        rect1.Width = 1;
        rect1.Height = 3;
 
        Console.WriteLine("rect1: {0}:{1}", rect1.Width, rect1.Height);
 
    Rectangle rect2 = new Rectangle(5, 7);
 
        Console.WriteLine("rect2: {0}:{1}", rect2.Width, rect2.Height);
    
    // فراخوانی  متد  add()
 
        Rectangle rect3 = rect1.Add(rect2);
 
        Console.WriteLine("rect3: {0}:{1}", rect3.Width, rect3.Height);
 
        Console.ReadKey();
   }
}
 
خب ببینید دو ساختار با نام های struct1 و struct2 ایجاد کردیم که در متد main موجود هست و هر دو از نوع ساختار Rectangle .
 
عرض و ارتفاع مستطیل برابر با حاصل جمع عرض و ارتفاع rect1 و rect2 می باشد
 
در فراخوانی متد add از ساختار Rect1 صدا زده میشه و rect2 بعنوان پارامتر به آن ارسال میشه

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

پنج شنبه 24 اردیبهشت 1394  3:38 PM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 154065
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به: آموزش جامع Visual C#.NET

 شی گرائی (بخش چهارم)
ارث بری (بخش دوم) 
 
ارث بری یكی از مفاهیم اولیه ی برنامه نویسی شی گرا می باشد. با استفاده از آن استفاده مجدد از كد موجود به نحوی مؤثر ممکن میشه و صرفه جویی قابل توجهی را در زمان برنامه نویسی بوجود میاره. به كد زیر دقت كنید:
 
 
کد:
using System;
 
 
 
public class ParentClass
 
{
 
public ParentClass()
 
{
 
Console.WriteLine("Parent Constructor.");
 
}
 
public void print()
 
{
 
Console.WriteLine("I'm a Parent Class.");
 
}
 
}
 
public class ChildClass : ParentClass
 
{
 
public ChildClass()
 
{
 
Console.WriteLine("Child Constructor.");
 
}
 
public static void Main()
 
{
 
ChildClass child = new ChildClass();
 
child.print();
 
}
 
}
 
 
خروجیش :
 
Parent Constructor.
 
Child Constructor.
 
I'm a Parent Class.
 
كد بالا از دو كلاس استفاده می كنه. كلاس بالایی ParentClass و كلاس اصلی ChildClass است. كاری كه انجام شده استفاده از كدهای كلاس والد ParentClass در كلاس بچه ChildClass است. برای اینكه ParentClass را بعنوان كلاس پایه برای ChildClass معرفی كنم به صورت زیر باید انجام بشه :
 
کد:
public class ChildClass : ParentClass
 
 
كلاس پایه با استفاده از این علامت ":" ، پس از كلاس مشتق شده تعریف میشه. در سی شارپ تنها ارث بری یگانه پشتیبانی میشه. بنابراین تنها یک كلاس پایه را برای ارث بری میتونیم معرفی کنیم .
 
ChildClass دقیقا توانایی های ParentClass را داره. بنابراین میتونم بگیم ChildClass همون ParentClass است. برای مثال در كد بالا ChildClass دارای متد print نیست اما از كلاس ParentClass به ارث برده است و در متد Main برنامه از آن استفاده شده. 

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

پنج شنبه 24 اردیبهشت 1394  3:38 PM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 154065
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به: آموزش جامع Visual C#.NET

 شی گرائی (بخش پنجم)
ارث بری بخش سوم
 
در پست قبلی با مفهموم ارث بری و نحوۀ کاربردش در کدنویسی آشنا شدید ، خب حالا در این پست کمی بیشتر دربارۀ ارث بری توضیح میدم
 
زمان ساختن یه شی از كلاس مشتق شده ، اول یک نمونه از كلاس والد خود بخود ساخته میشه این مورد در خروجی كد در پست قبلی زمانی كه متدهای سازنده ها روی صفحه چاپ میشن قابل درک ست به کد در پست قبلی دقت کنید.
 
خب حالا میخواییم ببینیم چطور میشه اطلاعات رو بین كلاس والد و كلاس فرزند رد و بدل کرد
 
کد:
using System;
 
public class Parent
{
    string parentString;
 
    public Parent()
    {
        Console.WriteLine("Parent Constructor.");
    }
 
    public Parent(string myString)
    {
        parentString = myString;
        Console.WriteLine(parentString);
    }
 
    public void print()
    {
        Console.WriteLine("I'm a Parent Class.");
    }
}
 
public class Child : Parent
{
    public Child()
        : base("From Derived")
    {
        Console.WriteLine("Child Constructor.");
    }
 
    public void print()
    {
        base.print();
        Console.WriteLine("I'm a Child Class.");
    }
 
    public static void Main()
    {
        Child child = new Child();
        child.print();
        ((Parent)child).print();
    }
}
 
 
كلاس فرزند با كلاس والد می تونن تبادل اطلاعات كنن همانطور كه در مثال بالا میبینید با استفاده از كلمۀ كلیدی base ، كلاس فرزند تابع سازندۀ كلاس والد رو فراخوانی كرده. اولین خط خروجی نمایش دهندۀ این موضوع است. 
 
زمانی می خوایم تابعی رو كه در كلاس والد تعریف شده رو در كلاس فرزند با تعریف دیگری و مخصوص به خودمان ایجاد کنیم در این صورت تابع تعریف شده در كلاس فرزند ، تابع هم نام والد را مخفی میکنه و دیگه آن تابع والد فراخوانی نخواهد شد. 
در این حالت تنها یه راه برای دسترسی به تابع اصلی والد وجود داره و استفاده از کلمۀ base است كه در كد بالا پیاده سازی شده. با استفاده از base می تونیم به تمام اعضای public یا protected كلاس والد از درون كلاس فرزند دسترسی داشت. 
 
کد:
((Parent)child).print();
 
 
راه دیگری هم وجود داره که در متد main گفته شده مثل بالا 
 
در كد بالا در واقع child به نوعی از parent تبدیل شده، بنابراین مثل اینه كه یه نمونه از كلاس والد متد print همان كلاس را فراخوانی کنیم.

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

پنج شنبه 24 اردیبهشت 1394  3:38 PM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 154065
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به: آموزش جامع Visual C#.NET

 شی گرائی (بخش سوم)
در زبان سی شارپ، اشيا بوسيله کلاسها (Class) نمايش داده می شوند داخل کلاس، صفات بصورت فيلدها نمایان می شوند و جهت پياده سازی رفتارها از متدها استفاده می شود. به کد زیر دقت کنید :
 
کد:
class Time
 {
    int hours;
    int minutes;
    int seconds;
                       
    void pastime()
       {
//code
       }
 }
 
 
در اين مثال ، کلاس Time مشاهده میشه اين کلاس با کلمه کليدی class اعلان شده است. همانطور که میدونید، دو کروشه باز و بسته {} نيز ابتدا و انتهای کلاس را مشخص می کند. فيلدها دارای نام و نوع هستند 
متدها دارای نام و نوع بازگشتی می باشند و پياده*سازی آنها داخل بلاک مربوط به خود آنها (بين دو {}) انجام میشود.
 
يک شی می تواند هر يک از نيازمندی های يک پروژه باشد. 
 
(مقدمه ای بر ارث بریInheritance) 
(بخش اول) 
 
طبقه بندی اشيا در گروههای مختلف بسيار کاربرد دارد. زمين شناسان سنگها را طبقه بندی می کنند و زيست شناسان گياهان و حيوانات را طبقه بندی می کنند. طبقه بندی اشيا باعث میشه تا با دقت و ظرافت بيشتری بتونیم به جزئيات هر طبقه و يا هر نوع بپردازیم.
 
خب با توجه به توضیحاتی که دادم به این کد دقت کنید تا بهتر متوجه بشید
 
کد:
class Bird
{
   string beakDescription;
   int wingSpan;
   string typeOfBird;
           
   void fly()
   {
//code
   }
}
 
 
کلاس بالا را می توان بعنوان کلاسی عمومی برای پرندگان در نظر گرفت که دارای فيلدی جهت تعيين نوع پرنده نيز می باشد. با استفاده از فيلد typeOfBird می توان گونه پرنده مورد نظر را معين نمود.

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

پنج شنبه 24 اردیبهشت 1394  3:38 PM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 154065
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به: آموزش جامع Visual C#.NET

شی گرائی (بخش هفتم)
بخش دوم Namespace
 
Namespace های تودرتو
 
در پست قبلی با فضای نام ها آشنا شدید و یاد گرفتید که چطور یک فضای نام رو به چه شکلی ایجاد کنید 
در این پست با فضای نام های تو در تو آشنا میشید، به کد زیر دقت کنید 
 
کد:
// Namespace اعلان
 
using System;
 
namespace html
 
{
 
namespace jquery
 
{
 
// كلاس آغاز برنامه
 
class Namespace css
 
{
 
public static void Main()
 
{
 
 // چاپ در خروحی
 
Console.WriteLine("This is the new html.");
 
}
 
}
 
}
 
}
 
 
مي تونیم فضاهای نامی تودرتو را با قاعدۀ بالا ایجاد کنیم و يه ساختار سلسله مراتبی برای انواع داده ای بسازيم . 
در کد بالا فضای نام jquery درون فضای نام html قرار دارد .
نام هر فضای نام از نام های فضاهای نامی كه آن را در بر می گيرند تشكيل شده ، دقت کنید که اعلان یه فضای نام چند بخشی به صورت تو در تو، در داخل فضای اسمی ديگر مجاز نيست .

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

پنج شنبه 24 اردیبهشت 1394  3:38 PM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 154065
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به: آموزش جامع Visual C#.NET

 شی گرائی (بخش هشتم)
بخش سوم Namespace
 
فراخوانــی اعضـــای يک Namespace
 
در پست های قبلی با فضای نام ها و فضاهای تو در تو آشنا شدید ، در این پست نحوۀ فرخوانی عضوهای یک فضای نام رو بتون یاد میدم 
 
کد:
using System;
 
namespace csharp
{
    // فضای نام تودرتو
 
    namespace html
    {
        // کلاس فراخوانی شده
        class myhtml1
        {
            // متد فراخوانی شده
            public static void mycss1()
            {
 
                Console.WriteLine("First Example.");
 
            }
 
        }
 
    }
 
    // كلاس آغازين برنامه
 
    class NamespaceCalling
    {
        // آغاز اجراي برنامه
        public static void Main()
        {
 
            // چاپ در خروجی 
            html.myhtml1.mycss1();
 
            html.myhtml2.mycss2();
 
        }
 
    }
 
}
 
// مشابه فضای نام تو در توی بالا    
 
namespace java
{
    class myhtml2
    {
 
        public static void mycss2()
        {
            Console.WriteLine("Second Example.");
        }
 
    }
}
 
 
در کد بالا، یک Namespace تودرتو فراخوانی شده ، html درون csharp است ، كه دارای كلاس myhtml1 و متد mycss1 قرار گرفته .
 
متد Main اين متد را با نام html.myhtml1.mycss1 فراخوانی میکنه. چون متد Main و html درون يه فضای نام هستند ، و يه فضای نام دیگه بصورت namespace java فراخوانی کردم.
كلاسهای myhtml1 و myhtml2 هر دو متعلق به یه Namespace هستند ، و درون متد Main ، متد mycss2 بصورت html.myhtml2.mycss2 فراخوانی کردم.
توجــه کنیـد که برای هر کدوم از كلاسهای myhtml1 و myhtml2 نامهای متفاوتی انتخاب کردیم چون هرعضو مربوط به یک فضای باید نام منحصر به فردی داشته باشه.
برای متدهـــــای فراخوانـــی شده هم نام های متفاوتــی در نظر گرفته شده.

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

پنج شنبه 24 اردیبهشت 1394  3:38 PM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 154065
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به: آموزش جامع Visual C#.NET

 شی گرائی (بخش دهم)
بخش پنجم Namespace
 
استفاده از Alias
 
با سلام خدمت دوستان 
در پست قبلی دربارۀ استفاده از کلمۀ کلیدی using صحبت کردم ونمونه کدی رو هم مثال زدم ، در این پست کاربرد کلمۀ کلیدی Alias رو در فضای نام ها توضیح میدم ابتدا به کد زیر دقت کنید : 
 
 
کد:
// فراخوانی
using System;
 
// alias
using csoop = csharp_myExample; 
 
 
 
// کلاس برنامه
class Aliasletter
{
 
    // آغاز برنامه
 
    public static void Main()
    {
 
        // Namespace فراخوانی عضوی از
 
        csoop.mycss();
 
        mycss();
 
    }
 
    static void mycss()
    {
 
        Console.WriteLine("Not a member of csharp_myExample.");
 
    }
 
}
namespace csharp_learning
{
 
    class mysample
    {
 
        public static void mycss()
        {
 
            Console.WriteLine("This is a member of csharp_myExample.");
 
        }
 
    }
}
 
 
گاهی اوقات ممكنه با Namespace خاصی روبرو بشیم كه دارای نام طولانی است و تمايل داشته باشيم تا نامشو كوتاه کنیم ، اين كار با استفاده از کلمۀ کلیدی یا به اصطلاح استعاره (Alias) امكان پذيره.
 
 
ما در کد بالا در خط دوم >> csoop = csharp_myExample يه استعاره توليد كرديم ، یعنی ما به جای استفاده مکرر از جملۀ (csharp_myExample) ، از استعارۀ csoop استفاده میکنیم و در جاهای دیگه برناممون حتی در متد main از کلمۀ csoop استفاده میکنیم.
 
همچنين در متد Main ، فراخوانی متد mycss مربوط به كلاس Aliasletter می باشد ، نام اين متد مثل mycss موجود در mysample است.دلیل اينكه می تونیم هر دوی اين متدها رو همزمان فراخوانی كنیم، استفاده از alias برای متد mycss مربوط به كلاس mysample است.
 
دقت کنید استفاده از اين روش باعث میشه تا كامپايلر متوجه بشه كه كدوم متد را بايد اجرا کنه ، اگر به اشتباه از csoop.mycss استفاده نكنيم ، كامپايلر به اشتباه متد mycss مربوط به كلاس Aliasletter رو دوبار اجرا میکنه .

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

پنج شنبه 24 اردیبهشت 1394  3:38 PM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 154065
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به: آموزش جامع Visual C#.NET

 شی گرائی (بخش ششم)
بخش اول Namespace
 
Namespace ها (فضای نام - نام ها)، المان هایی در زبان سی شارپ هستند كه مارو را در سازماندهی كردن برنامه (پروژه)، یاری می كنند. پياده سازی Namespace ها در كد نویسی بسيارکاربرد دارد چون كه از ايجاد مشكلات مربوط به استفاده مجدد كد، پيشگيری میشه .
 
چگونگی ايجاد Namespace
 
کد:
// Namespace فراخوانی
 
using System;
 
namespace html
 
{
 
class Namespace css
 
{
 
// آغاز اجرای برنامه
 
public static void Main()
 
{
 
// چاپ در خروجی
 
Console.WriteLine("This is the new html.");
 
}
 
}
 
}
 
 
در مثال بالا با قرار دادن كلمه كليدی namespace قبل از html یک Namespace جديد ايجاد کردم.
 
در ابتدای برنامه از;using System استفاده کردم، با استفاده از اين كد ، امكان دسترسی به اعضای Namespace مورد نظر، كه در اينجا System است، فراهم میشه.

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

پنج شنبه 24 اردیبهشت 1394  3:38 PM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 154065
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به: آموزش جامع Visual C#.NET

 شی گرائی (بخش یازدهم)
چند ريختی (Polymorphism)
 
يكي ديگه از مفاهيم پايه ای در شئ گرايی، چند ريختی (Polymorphism) است. با استفاده از اين ويژگي، ميتوان برای متد كلاس مشتق شده پياده سازی متفاوتی از پياده سازی متد كلاس پايه ايجاد کرد.
اين ويژگي در جايی مناسب است كه می خواهیم گروهی از اشياء را به يک آرايه تخصيص بدیم و سپس از متد هر يک از اونا استفاده كنيم. اين اشياء الزاما نبايد از يه نوع شئ باشند.
هرچند اگر اين اشياء بواسطه ارث بری به يكديگر مرتبط باشند، ميتوان آنها را بعنوان انواع ارث بری شده به آرايه اضافه کرد ، اگر هر يک از اين اشياء دارای متدی با نام مشترک باشند ، ميتوان هر يک از آنها را جداگانه پياده سازی و استفاده کرد.
 
به کد زیر دقت کنید :
 
متد مجازی (Virtual Method)
 
 
کد:
using System;
 
 
 
public class pointObject
{
 
    public virtual void point()
    {
 
        Console.WriteLine("just a object.");
 
    }
 
}
 
 
کد بالا کلاس pointObject را نمایش میده و اين كلاس میتونه به عنوان كلاسی پايه جهت كلاس های ديگر در نظر گرفته بشه ، اين كلاس تنها دارای يک متد با نام point است. اين متد دارای پيشوند virtual است.

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

پنج شنبه 24 اردیبهشت 1394  3:38 PM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 154065
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به: آموزش جامع Visual C#.NET

 شی گرائی (بخش نهم)
بخش چهارم Namespace
 
استفاده از using
 
در این پست قصد دارم نحوۀ استفاده از using ها براتون شرح بدم ، خب در ابتدا به کد زیر دقت کنید :
کد:
// Namespace فراخوانی
using System;
 
using csharp;
 
class Usingletter
{
 
    // آغاز برنامه
 
    public static void Main()
    {
 
        // Namespace فراخوانی عضوی از
 
        myExample.mycss();
 
    }
 
}
 
 
namespace csharp
{
 
    class myExample
    {
 
        public static void mycss()
        {
 
            Console.WriteLine("Example of using a using css.");
 
        }
 
    }
 
}
 
 
در صورتيكه بخوایم متدهايی رو بدون استفاده از نام كاملشون ، به همراه نام Namespace، استفاده کنیم، ميتونیم از کلمۀ کلیدی using استفاده کنیم .
اگه در ابتدای برنامه ممون از using استفاده نكنيم، بايد برای هر دفعه استفاده از متد WriteLine، نام كاملشو >> System.Console.WriteLine را بنویسیم .
در کد بالا از using csharp امكان استفاده از اعضای اين Namespace رو، بدون نياز به تايپ نام كامل آنها ممکن کردم ، چون در ابتدای برنامه از using استفاده کردم .
 
در کد بالا متد mycss رو بصورت myExample.mycss استفاده کردیم ، درصورتيكه از using استفاده نمی کردیم برای استفاده از اين متد بايد بصورت csharp.myExample.mycss فراخوانی میکردیم .

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

پنج شنبه 24 اردیبهشت 1394  3:39 PM
تشکرات از این پست
دسترسی سریع به انجمن ها