using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LInqDemo
{
class Program
{
static void Main(string[] args)
{
int num = 500;
string name = "小位";
Console.WriteLine(name.StuInfo() + num.GetAvg());//扩展方法的使用
Console.WriteLine(name.StuInfo(99));//扩展方法的使用
Console.ReadKey(); } } /// <summary> /// 扩展方法,扩展类,扩展类必须是静态类 /// </summary> static class ExtendMethod { public static int GetAvg(this int sum)//int类型的扩展方法,this代表当前变量 { return sum / 5; } public static string StuInfo(this string name)//string类型的扩展方法 { return string.Format($"{name},您好,您的5门课程的平均分为:"); }
public static string StuInfo(this string name, int num)//string类型的扩展方法
{
return string.Format($"{name},您好,您的5门课程的平均分为:{num}");
}
}}
如果一个类是sealed类型的(密封类,不能被继承),这时可以通过扩展类,来扩展
如果扩展类和本身类里的方法重名时,优先使用本身类中的方法
扩展类不可使用太多,静态类,比较占内存