• 01 扩展方法一


    扩展方法的本质:实际上就是静态方法

    注意:
    1、这个类必须是静态类 【关于扩展方法,为什么要定义的在静态类中,是因为在内存中找到这个方法的速度会更快,这样就提高了性能】
    2、至少要有一个参数,这个参数就是this
    3、静态类中的方法必须为静态方法

    调用静态方法的顺序:
    当一个类中的方法名和方法参数和静态类中的方法名完全一样,这时候,调用的先后顺序是:先调用此类中的方法,如果没有找到此方法,就会去找扩展方法

    扩展方法其实就是C#的一种语法糖

    1、第一步:定义了一个类:Dog

     1 public class Dog
     2     {
     3         /// <summary>
     4         /// DogId
     5         /// </summary>
     6         public int DogId { get; set; }
     7 
     8         /// <summary>
     9         /// 姓名
    10         /// </summary>
    11         public string DogName { get; set; }
    12 
    13         /// <summary>
    14         /// 年龄
    15         /// </summary>
    16         public int DogAge { get; set; }
    17 
    18         /// <summary>
    19         /// 玩具
    20         /// </summary>
    21         public string DogToy { get; set; }
    22 
    23         public override string ToString()
    24         {
    25             string str = string.Empty;
    26             str = "我的号码是:" + DogId + "号;我的名字叫:" + DogName + ";我今年" + DogAge + "岁;" + "我喜欢玩:" + DogToy;
    27             return str;
    28         }
    View Code

     2、第二步:定义个扩展类:DogExtend

    1 public static void SayHi(this Dog dogObj)
    2         {
    3             string str = "大家好,我叫" + dogObj.DogName + ";很高兴认识大家";
    4             MessageBox.Show(str);
    5         }
    View Code

    3、第三步:调用扩展方法 【写了一个测试单元】

     1 public class UnitTest1
     2     {
     3         [TestMethod]
     4         public void TestMethod1()
     5         {
     6             Dog d = new Dog() { DogId = 1, DogName = "小白", DogAge = 10, DogToy = "小球" };
     7             DogExtend.SayHi(d);
     8 
     9             d.SayHi();
    10         }
    11      }
    View Code
  • 相关阅读:
    为什么今天的L4无人驾驶无法到达终局(转)
    各种卷积类型Convolution
    关于快速、深入理解需求
    测试注意事项及工作标准
    测试工作指引
    测试验收工作指引
    Jmeter的json提取器使用
    高等数学:第一章 函数与极限
    vscode
    Python模块查找路径
  • 原文地址:https://www.cnblogs.com/hellowawei/p/5948529.html
Copyright © 2020-2023  润新知