تبلیغات
مرجع عملی و کاربردی زبان سی شارپ ، تصاویر دیدنی ، دانلود نرم افزار های گوناگون - اصول اولیه OOP و دات نت فریمورک

اصول اولیه OOP و دات نت فریمورک

نویسنده :مرتضی عالمین
تاریخ:سه شنبه 29 اردیبهشت 1388-05:36 ب.ظ

1-مفاهیم بنیادین شیء گرایی

1-2-فیلدها، پراپراتیها و متودها

تعریف عملگر های سفارشی


کد:

class MyClass

{

        private int number ;

        public MyClass(int _number)

        {

            this.number = _number;

        }

        public static MyClass operator+ (MyClass c1, MyClass c2)

        {

            return new MyClass(c1.number + c2.number);

        }

}

تعریف یک Operator overloading همیشه باید بصورت Static و Public باشد و مقدار برگشتی آن نیز نمیتواند void باشد.

فراخوانی یک رویداد از رویداد دیگر


کد:

private void Form1_Load(object sender, EventArgs e)

{

MessageBox.Show(sender.ToString());

}

و

کد:

private void button1_Click(object sender, EventArgs e)

{

System.EventArgs arg = new System.EventArgs();

Form1_Load(button1.Text, arg);

}

1-3-اینترفیس، رویداد، Delegate, Threading :

sort کردن آبجکتهای یک کلاس با پیاده سازی اینترفیس IComparable


کلاس مورد نظر باید اینترفیس IComparable رو پیاده سازی کند. (این اینترفیس تنها یک متود CompareTo دارد)
به نحوه ی پیاده سازی متود CompareTo دقت کنید :

کد:

public class Person : IComparable

{             

    private string _firstname;

    public string Firstname

    {

        get { return _firstname; }

        set { _firstname = value; }

    }

    private string _lastname;

    public string Lastname

    {

        get { return _lastname; }

        set { _lastname = value; }

    }

    private int _age;

    public int Age

    {

        get { return _age; }

        set { _age = value; }

    }

    public Person(string firstname, string lastname, int age)

    {

        _firstname = firstname;

        _lastname = lastname;

        _age = age;

    }

    public int CompareTo(object obj)

     {

        if (obj is Person)

        {

            Person p2 = (Person)obj;

            return _firstname.CompareTo(p2.Firstname);

        }

        else

            throw new ArgumentException("Object is not a Person.");

     }

    public override string ToString()

    {

        return String.Format("{0} {1}, Age = {2}", _firstname,

            _lastname, _age.ToString());

    }

}

مثال - Sort کردن افراد از روی اسم کوچک (استفاده از کلاس بالا(

کد:

List<Person> persons = new List<Person>();

persons.Add(new Person("Behrouz", "Rad", 30));

persons.Add(new Person("Omid", "Mottaghi Rad", 31));

persons.Add(new Person("Mehdi", "Keramati", 32));

persons.Add(new Person("Ali", "Keshavarz", 33));

persons.Add(new Person("Mohammad", "Heshemian", 34));

persons.Add(new Person("Farhad", "XXX", 35));

//Before Sorting

listBox1.Items.AddRange(persons.ToArray());

//ُSorting List

persons.Sort();

//Sorted List

listBox2.Items.AddRange(persons.ToArray());

فراخوانی یک متد با یک Thread‌جداگانه


معمولا متدهایی که بار پردازشی زیادی دارند موجب کندی برنامه میشن
برای جلوگیری از این کار میشه این متد هارو با استفاده از یک Thread متفاوت از Thread اصلی برنامه فراخوانی کرد.

کد:

using System.Threading;

فرض کنیم این متد رو داریم :

کد:

void DoSomething()

{

...

}

تعریف Thread جدید برای متد مورد نظر :

کد:

Thread  myThread = new Thread(new ThreadStart(this.DoSomthing));

فراخوانی متد با استفاده از متد تعریف شده‌:

کد:

myThread.Start();

برای متوقف کردن Thread‌ایجاد شده :

کد:

myThread.Abort();

نکته :‌
هر Thread‌فقط میتواند با object هایی کار کند که خودش آنها را ایجاد کرده است. مثلا اگر در متد DoSomething‌شما بخواهید با یک label که روی فرم است کار کنید cross-thread exception رخ خواهد داد چون آن label بوسیله Thread‌اصلی برنامه ایجاد شده است.




داغ کن - کلوب دات کام
نظرات() 
rapid tan and tone dinnington
چهارشنبه 24 مرداد 1397 10:52 ق.ظ
Helpful info. Lucky me I discovered your web site
accidentally, and I'm stunned why this twist of fate didn't took
place in advance! I bookmarked it.
фитнес резинки esonstyle купить
سه شنبه 11 اردیبهشت 1397 12:47 ق.ظ
фитнес резинка киев купитиь
посоветуйте хорошую резинку для фитнеса
эспандерная резинка
резиновая петля для тренировок
резинка для фитнеса
garciniacambogiapremium.net
سه شنبه 21 فروردین 1397 07:03 ق.ظ
Have actually been taking little over a month.
http://garciniacambogiapremium.net/
یکشنبه 19 فروردین 1397 04:30 ب.ظ
Have actually been taking little over a month.
Can you grow taller with exercise?
شنبه 1 مهر 1396 08:19 ب.ظ
It's actually a cool and helpful piece of information. I am glad that you shared this helpful
info with us. Please stay us up to date like this.
Thank you for sharing.
How long does Achilles tendonitis last for?
پنجشنبه 16 شهریور 1396 08:49 ق.ظ
Hello, this weekend is fastidious for me, as this point in time i
am reading this great informative article here at my home.
Can stretching help you grow taller?
دوشنبه 16 مرداد 1396 01:39 ب.ظ
Hmm it appears like your website ate my first comment (it was
extremely long) so I guess I'll just sum it up what I wrote
and say, I'm thoroughly enjoying your blog. I as well am an aspiring blog writer but I'm still new
to everything. Do you have any suggestions for inexperienced blog writers?

I'd genuinely appreciate it.
foot pain side
چهارشنبه 7 تیر 1396 06:22 ب.ظ
First off I want to say great blog! I had a quick question in which I'd like to ask if you don't mind.
I was interested to find out how you center yourself and clear your head
prior to writing. I've had difficulty clearing my thoughts in getting my
ideas out there. I truly do take pleasure in writing but it just seems
like the first 10 to 15 minutes tend to be lost simply just trying
to figure out how to begin. Any suggestions or hints? Appreciate it!
foot pain chart diagnosis
چهارشنبه 7 تیر 1396 05:22 ق.ظ
Thanks for finally talking about >مرجع عملی و
کاربردی زبان سی شارپ ، تصاویر دیدنی ، دانلود
نرم افزار های گوناگون - اصول اولیه OOP و دات نت فریمورک <Liked it!
foot pain heel
دوشنبه 5 تیر 1396 07:38 ب.ظ
I create a comment whenever I appreciate a post on a site or
I have something to valuable to contribute to the
conversation. It is caused by the fire communicated in the post I browsed.
And after this article مرجع عملی و
کاربردی زبان سی شارپ ، تصاویر دیدنی ، دانلود نرم افزار های گوناگون - اصول
اولیه OOP و دات نت فریمورک. I was actually moved enough
to drop a commenta response ;) I actually do have a couple of questions
for you if you do not mind. Is it only me or do some of these responses
appear like left by brain dead visitors? :-P
And, if you are posting at additional sites, I'd like to
follow you. Would you list the complete urls of your community pages like your linkedin profile, Facebook page or twitter feed?
Timmy
سه شنبه 19 اردیبهشت 1396 11:16 ق.ظ
Just what I was searching for, regards for posting.
BHW
جمعه 25 فروردین 1396 12:31 ب.ظ
I constantly spent my half an hour to read this web site's content daily along with a mug of coffee.
manicure
پنجشنبه 17 فروردین 1396 11:34 ق.ظ
Hi, just wanted to mention, I liked this article. It was helpful.
Keep on posting!
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر




Admin Logo
themebox Logo