مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

morteza.cs

عضویت از 1393/08/12

extension method به نام خود کلاس

  • دوشنبه 12 بهمن 1394
  • 16:54
تشکر میکنم

سلام 

من میخوام یه extension method بنویسم که به خود نام کلاس یا نوع داده مرتبط بشه. مثل string.empty میخوام یه متد باشه که id تولید کنه. مثل ()string.getNewId

چطور میشه این کارو کرد؟

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

سمیه حاتمی

عضویت از 1394/06/24

  • سه شنبه 13 بهمن 1394
  • 09:37

دوست عزیز برای این کار لازم است که یک کلاس استاتیک و در درون آن یک متد به صورت استاتیک بنویسید .نکته ای که هست باید اولین پارامتر این متد به صورت this و بعد از آن نام کلاسی که قرار است به آن این متد را الحاق کنید آورده شود .مانند زیر

namespace Extension_Methods.Example1
{
    public static class SplitExtensionMethods
    {
        public static string[] SplitByComma(this String s)
        {
            return s.Split(',');
        }
    }
}

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

البته در داخل متد منطق شما فرق می کند و باید یک عدد رندوم را برگردانید

کاربر سایت

morteza.cs

عضویت از 1393/08/12

  • سه شنبه 13 بهمن 1394
  • 10:42

سلام

خیلی ممنون از جواب شما ولی مشکل من این نبود. من نمیخوام متغیر از نوع string تعریف کنم و از اون استفاده کنم. من میخوام از خود نوع داده string استفاده کنم و میخوام متد هم ورودی نداشته باشه. مثل این

string.getNewId()

 

کاربر سایت

سمیه حاتمی

عضویت از 1394/06/24

  • سه شنبه 13 بهمن 1394
  • 12:18

دوست عزیز برای اینکه بتوان متد به کلاس seald اضافه کرد(کلاس String یک کلاس seald ) است پروژه ای را ضمیمه کرده ام که تا حدی کمک کننده است .چرا که این روش برای کلاس STring جواب نمی دهد .زیرا این کلاس علاوه بر Seald دارای سازنده Static هم هست .ولی برای کلاس های Seald راه حل را ببینید تا من هم به کلاس String  فکر کنم

با تشکر

فایل های ضمیمه

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)