扩展方法,和工具类

using System.Windows;

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    /// 
    /// 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            //正常调用
            A.B("wo shi a");
        }
    }


    public static class A
    {
        public static void B(string a)
        {
            MessageBox.Show(a);
        }
    }
}

扩展方法:

using System.Windows;

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    /// 
    /// 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            //正常调用
            A.B("wo shi a");
            //扩展方法
            "wo shi a".B();
        }
    }


    public static class A
    {
        public static void B(this string a)
        {
            MessageBox.Show(a);
        }
    }
}

扩展方法的类必须是静态类(static),同时扩展方法必须判断参数null。否则会异常所以

using System.Windows;

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    /// 
    /// 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            //正常调用
            A.B("wo shi a");
            //扩展方法
            "wo shi a".B();
        }
    }


    public static class A
    {
        public static void B(this string a)
        {
            if(a==null)return;
            MessageBox.Show(a.ToString());
        }
    }
}
扩展方法是谁谁谁的处理怎么样 而工具类是处理类中的方法

 

posted on 2018-01-09 13:16  dzh1990  阅读(157)  评论(0编辑  收藏  举报