نمایش نتایج 1 تا 2 از 2

نام تاپیک: generic type ها

  1. #1

    generic type ها

    يكي از انواع constrain هاي generic type ها new() است من msdn هم ديدم چيزي متوجه نشدم؟

  2. #2

    نقل قول: generic type ها

    با سلام
    بریم سراغ new آخر و حکایت new رو تمام کنیم.
    و امید دارم که شی تحرک بخشیدن به بخش C#‎ توسط دوستان با عملگر newایجاد بشه و حکایت 3 newها تمام!
    new یی که به عنوان Constraint شناخته می شه برای Generic Type ها استفاده میشه، برای مطالعه Generic Type ها می توانید به لینک زیر مراجعه نمایید :
    http://www.developercenter.ir/Forum/...ead.php?t=7415

    فرض کنید کلاسی با نام MyParameterLessClass داریم به شکل زیر :

    public class MyParameterLessClass
    {
    public MyParameterLessClass()
    {
    }
    }



    حال به کلاس زیر که به شکل Generic Type هست توجه کنید :

    public class Lst<T> where T : new()
    {
    public void add(T ParameterLessClasses)
    {
    }
    }



    چون کلاس MyParameterLessClass متد سازنده آن بدون پارامتر هست می توانیم تعریف زیر را انجام دهیم :


    Lst<MyParameterLessClass> b = new Lst<MyParameterLessClass>();

    b.add(new MyParameterLessClass());



    در واقع کار where T : new() اینه که چک کنه کلاسی که در Place Holder قرار می گیره حتمی یا تابع سازنده نداشته باشه یا حد اقل یک متد سازنده بدون پارامتر داشته باشه.
    یعنی اگر ما کلاس MyParameterLessClass را به شکل زیر تعریف کنیم (با پارامتر تعریف کنیم) از کامپایلر روی دو خط بالا که تعریف کردیم میگه "خطا داره حسن" :


    public class MyParameterLessClass
    {
    public MyParameterLessClass(Form MyParameter)
    {
    }
    }



    توجه داشته باشید که اگر چند شرط داشته باشیم new باید آخرین باشه و با کاما از هم جدا بشه.

    امیدوارم کد زیر خطا نده حسن :


    تحرک_بخشیدن_CSharp Posts= newتحرک_بخشیدن_CSharp();
    Posts.FriendsWritePosts();




قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •