Top useful .Net extension methods

Special extension methods were released in C# 3.0. Developers have continuously been looking for ways to extend classes to every coding and got top most preferable extension methods for .net development.
Is there a class that just doesn’t do enough for you? Is it true that you always wanted to add more onto a Date-Time class, but somehow you couldn’t? Things which were not possible earlier can be true with extension methods that C# 3.0 unveiled.

What are extension methods?

Extension methods empower developers to build new functionality for existing types without altering the actual type itself. The major characteristics of an extension method are:

  • The method needs to be static
  • The class needs to be static
  • The method’s initial parameter in the signature should have the “this” declared
Top useful .net extension methods are:

1. ToFileSize-Type: Long
It was required by developers because it was easier to read the number. Developers can convert it into formatted number with the apt size metric.

技术分享

2. ToXmlDocument()/ToXDocument() – Type: XmlDocument or XDocument
Your developer can’t explain how many times he needs to convert an XmlDocument into an XDocument and vice versa for LINQ use. The following handy extension methods are intended to save huge time.

技术分享

3. Between() – Type: Daytime
It is used to check if a date is between two dates.

技术分享

4. CalculateAge() – Type: DateTime
As the name suggests, it is used for calculating age.

技术分享

5. Workingday()/Isweekend()/NextWorkday() – Type: Datetime
It is used for determining if a date is a working day, weekend, or finding the next upcoming workingday.

技术分享

6. Next() – Type: DateTime
It is used for determining the Next Date by passing in a DayofWeek.

技术分享

7. Has()/Is()/Add()/Remove() – type Enum
This extension method is great when an enumerated type is flag instead of full items.

        public static bool Has<T>(this System.Enum type, T value)
        {
            try { return (((int)(object)type & (int)(object)value) == (int)(object)value); }
            catch { return false; }
        }
        public static bool Is<T>(this System.Enum type, T value)
        {
            try { return (int)(object)type == (int)(object)value; }
            catch { return false; }
        }
        public static T Add<T>(this System.Enum type, T value)
        {
            try { return (T)(object)(((int)(object)type | (int)(object)value)); }
            catch (Exception ex) { throw new ArgumentException(string.Format("Could not append value from enumerated type ‘{0}‘.", typeof(T).Name), ex); }
        }
        public static T Remove<T>(this System.Enum type, T value)
        {
            try { return (T)(object)(((int)(object)type & ~(int)(object)value)); }
            catch (Exception ex) { throw new ArgumentException(string.Format("Could not remove value from enumerated type ‘{0}‘.", typeof(T).Name), ex); }
        }
 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。