Programming techniques

about every things that i''m learning and want learn to other people

Programming techniques

about every things that i''m learning and want learn to other people

آیا می خواهیداز برنامه های تحت ویندوز خود در وب استفاده نمایید؟

 راحل حل بسیار جالب Citrix

Citrix Systems, Inc .  در ویکی پدیا

 

 (NASDAQCTXS) is a multinational corporation founded in 1989, that provides server and desktop virtualization, networking, software-as-a-service (SaaS), and cloud computing technologies, including Xen open source products.

Citrix currently services around 230,000 organizations worldwide[3] and is based in Fort Lauderdale, Florida, in the South Florida metropolitan area, with subsidiary operations in California and Massachusetts, and additional development centers in Australia, India, Canada and the United Kingdom.

Following the acquisition of XenSource, Inc. in October 2007, Citrix spearheads the Xen open source hypervisor project.  

 

اصول Entity Framwork Code First

اصول  Entity Framwork Code First

یک مقاله خیلی عالی از همکارم آقای وحید حسنی

چگونه می توان یک تابع را به هر نوع کلاسی اضافه کرد ؟

 

Extension Methods

·         آیا به کلاس های  sealed می توان تابعی افزود ؟

·         چگونه می توان یک تابع را به هر نوع  کلاسی اضافه کرد ؟

·         آیا می توان یک کلاس را در خارج از بدنه کلاس تعمیم و یا این کار را در فضای نام همان کلاس یا خارج از آن انجام داد؟

 جواب این پرسش ها در Extension Methods می باشد

قبل از C# 3.0  فقط می‌شد یک کلاس را از طریق ارث‌بری از آن توسعه داد اما حالا اکنون میتوان با متد های توسعه این کار را انجام داد

توابع تعمیم یافته به اعضاء خصوصی کلاسی که تعمیم می‌یابد، دسترسی ندارند.

 شکل کلی توابع تعمیم یافته :

 

public static class ExtendingClassName

{

public static ReturnType MethodName(this   ExtendedMethod arg)

{

//دستورات درون متد

Return ReturnType;

}

}

 

 توجه کنید که:

1.       کلاس توسعه‌دهنده و تابع توسه‌دهنده باید استاتیک باشند.

2.       در داخل آرگومان تابع، کلمه کلیدی this  استفاده می‌‎‎شود.

3.       بعد از this عنوان کلاسی که قصد توسعه آن را داریم، ذکر می‌کنیم.

4.       در هرجا که خواستیم از قابلیت تعمیم داده شده استفاده کنیم باید فضای نام مربوط به آن را ذکر کنیم.

5.       با کلمه کلیدی static  نمیتوان کلاسی با متدهایvirtual  ، abstract  و override را توسعه داد. 

 

 public static class ExtendingString

    {

        public static string AddPrefix(this   string arg, string prefix)

        {

            return String.FormatFormat("{0}{1}", prefix, arg);

        }

    }

 

//call method

            var s = "Student";

            Console.WriteLine(s.AddPrefix("tbl"));

 

// خروجی

 tblStuden


 http://msdn.microsoft.com/en-us/library/bb383977.aspx

http://csharp.net-tutorials.com/csharp-3.0/extension-methods/