# 声明委托 > 委托三步曲:**声明**委托 -> **实例化**委托 -> **调用**委托; > 声明委托是使用委托的第一步。 委托通常在三个地方声明: + 名字空间: > 可见范围:程序集内或引用了程序集,无需使用using引入即可使用 ``` CSharp using System; //命名空间同级:调用方只需要引用定义类库就能使用;不需要使用Uing语句引入定义委托的命名空间。 public delegate string GlobalDelegate(); namespace DelegateDemo { ...... } ``` + 类同级: > 委托本质是和一样的自定义类型,和类同级。所以,能声明类的地方也能声明委托,可见范围与类相似。 ``` CSharp using System; namespace DelegateDemo { //类同级:最常用和推荐的,可见范围与使用方法与类相同。 public delegate string ClassLevelDelegate(); public class OtherClass { ...... } } ``` + 类内部,与类中方法同级: > 可见范围与类内方法相同;调用时,要先指定类:类名.委托名 ``` CSharp 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文件里,也可以单独成一个文件或集中到一个文件中便于管理。