You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.0 KiB
2.0 KiB
声明委托
委托三步曲:声明委托 -> 实例化委托 -> 调用委托; 声明委托是使用委托的第一步。
委托通常在三个地方声明:
-
名字空间:
可见范围:程序集内或引用了程序集,无需使用using引入即可使用
using System; //命名空间同级:调用方只需要引用定义类库就能使用;不需要使用Uing语句引入定义委托的命名空间。 public delegate string GlobalDelegate(); namespace DelegateDemo { ...... }
-
类同级:
委托本质是和一样的自定义类型,和类同级。所以,能声明类的地方也能声明委托,可见范围与类相似。
using System; namespace DelegateDemo { //类同级:最常用和推荐的,可见范围与使用方法与类相同。 public delegate string ClassLevelDelegate(); public class OtherClass { ...... } }
-
类内部,与类中方法同级:
可见范围与类内方法相同;调用时,要先指定类:类名.委托名
using System; namespace DelegateDemo { public class DemoClass { //类内部方法同级:可见范围与使用方法与类中方法相似,调用方须先调用类,后再调用委托。 public delegate string InsideDelegate(); //类内方法 public string GetName() { //方法体内:不允许定义委托 return "DeclearDelegate"; } /// <summary> /// 小写字串 /// </summary> public static string ConvertToLower(string source) { return source.ToLower(); } } }
文件说明:
可以与其它类在同一个.cs文件里,也可以单独成一个文件或集中到一个文件中便于管理。