随笔 - 163  文章 - 2  评论 - 370  阅读 - 46万 

今天在看到有人提出方法中用过this的问题, 然后感觉自己也需要在这里作个记录. 顺便提一下其用法与细节,注意:在2.0下面使用会出现引用错误.因为这个是3.0后的产物

扩展方法的作用:

可以直接对.netFrame类库进行扩展,减少代码量.

使用时应注意的问题:
1、所在类的类名在用做扩展方法的时候无效
2、扩展方法必须是在静态类中的静态方法,静态方法的格式有特殊要求
3、扩展方法也可以当作普通的静态方法使用

当我们看到有“小标箭头”的方法就是扩展方法了,请输入下面代码,然后他细看一下,方法与扩展方法的图标.

 

 

复制代码
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;

namespace Csharp.Test
{
    
public class Program
    {
        
public static void Main(string[] args)
        {
            
//代码调用
            Student student = new Student { Name = "BBB", Age = 20 };
            Console.WriteLine(student.IsValue(
"BBB"));
            
//输出true
            Console.WriteLine(student.TrueName("BBB"));
            
//输出true
            Console.ReadLine();
        }

    }
    
public class Student
    {
        
public string Name { getset; }

        
public int Age { getset; }
    }

    
public static class test
    {
        
public static bool IsValue(this Student student, object o)
        {
            
if (student.Name == o)
            {
                
return true;
            }
            
return false;
        }
    }

    
public static class EooPoo
    {
        
public static string TrueName(this Student student, object o)
        {
            
if (student.Name == o)
            {
                
return student.Name = "AAA";
            }
            
else
            {
                
return student.Name;
            }
        }
    }

    
}
复制代码

其实按上面的意思,最简单的一句话就是,类的方法可以扩展在别的类上面通过参数this来做扩展方法.

 

 

posted on   风浪  阅读(752)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示