C#中的擴充套件類的理解

xiaoxiaofen發表於2018-10-05

擴充套件類是一種靜態的一種類的呼叫方法,通過例項化進行呼叫。利用this進行指正該類,有引數的時候直接在後面追加引數。

//必須定義為公共的靜態類
public static class Studentinfo{
    //定義一個新增學生姓名的擴充套件方法
    public static string AddStuname(this string stuname){
               return studentname;
           }         
     //新增多個引數的擴充套件方法
    public static string AddStudentinfo(this string stuname,string stunum){
              return string.Format("學生資訊:
"+"學生姓名:{0}
"+"學生學號:{1}",stuname,stunum);
            }
} 


//這種方法跟一般的呼叫方法一致
//例項化類然後直接使用函式就行
class  Students
{
        public static void Main(string[] args){
                studentinfo stu=new studentinfo();
                string stuinfo=stu.Addstuname();
                string stuinfos=stu.AddStudentinfo("sldkfj","001");
                Console.WriteLine(stuinfo);
                Console.WriteLine(stuinfos);
             }
}

//為stu類擴充套件(一般用於不知道類中的原始碼,只知道功能時候)
pulic class Stu{
             public void foo(){
              ....
            }
             public void fo(string stuname,string stuno){
                ....
             }
}

//stu類的擴充套件類
public static class ExtenStu{
           //傳參進行類的例項化
           public static string ExtenStuAdd(this Stu student){
                return student.foo();
              }
            //傳參進行類的例項化,有引數在後面追加
            public static string ExtenStuAddinfo(this Stu students,string stusname,string stusnum)
               {
                  return students.fo(stusname,stusnum);
                }
 }

  

相關文章