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()); } } }
扩展方法是谁谁谁的处理怎么样 而工具类是处理类中的方法