.Net扩展类的研究-提高编程效率

简介: 测试项目结构://ObjectExtension.csusing System;using System.Collections.Generic;using System.

测试项目结构:



//ObjectExtension.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace ConsoleApplication2.Extension
{
    public static class ObjectExtension
    {
        /// <summary>
        /// 拓展方法:判断是否有值且不是空字符
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static bool IsNotNull(this string obj)
        {
            if (obj == null || obj == "") return false;
            if (obj.Trim() == "") return false;
            else return true;
        }

        /// <summary>
        /// Splits the CSV.
        /// </summary>
        /// <param name="line">The line.</param>
        /// <returns></returns>
        public static string[] SplitCsv(this string line)
        {
            Regex regex = new Regex("\".*?\"");
            var a = regex.Matches(line).Cast<Match>().Select(m => m.Value).ToList();
            var b = regex.Replace(line, "%_%");
            var c = b.Split(',');
            for (int i = 0, j = 0; i < c.Length && j < a.Count; i++)
            {
                if (c[i] == "%_%")
                {
                    c[i] = a[j++];
                }
            }
            return c;
        }
    }
}

//Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using ConsoleApplication2.Extension;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = "1,张三,\"这是张三的简历,他是一个很好的人,虽然说话不多\",\"这是张三的备注,他参加工件多年,经验丰富,解决了很多技术难题\"";
            Console.WriteLine(s.IsNotNull());
            string[] splited = s.SplitCsv();
            Console.WriteLine("Splited Length:"+splited.Length);
            foreach(var sp in splited)
            {
                Console.WriteLine(sp);
            }
            Console.ReadLine();
        }
    }
}

这是最普通的用法,每次使用扩展类时,都要手动添加引用的命名空间,不然vs不提示出来扩展方法,手动写出来不加命名空间也报错:

using ConsoleApplication2.Extension;

有时候,这种使用方法让人很烦躁,效率也不高



提高篇:

现在我们改一下 ObjectExtension.cs 的命名空间,直接改为 System


然后,在Program.cs 中就不需要引用额外的命名空间了。




原因是什么,就是我们使用的命名空间System,是.Net最基本的命名空间,每新建一个cs文件,都已经包含了这个命名空间了,所以不需要再引用了。


这也是一种投机取巧的方法,因为我们开发常用的一些扩展方法,如果每次放到新项目中,都要加新项目命名空间的前缀为类的命名空间,使用时也要引用 ,那效率真的不高。

这种方法也正好很方便的利用来提高开发效率,而且在不同的项目中不需要改类的命名空间,也不需要添加额外的引用,我觉得是很完美的方法。



最后附图运行结果:









相关文章
|
6月前
|
存储 JSON 开发工具
Visual Studio编程效率提升技巧集(提高.NET编程效率)
Visual Studio编程效率提升技巧集(提高.NET编程效率)
Visual Studio编程效率提升技巧集(提高.NET编程效率)
|
3月前
|
开发框架 .NET C#
C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式
【10月更文挑战第9天】在 C#/.NET Core 中,有多种方法可以删除字符串的最后一个字符,包括使用 `Substring` 方法、`Remove` 方法、`ToCharArray` 与 `Array.Copy`、`StringBuilder`、正则表达式、循环遍历字符数组以及使用 LINQ 的 `SkipLast` 方法。
|
6天前
|
JSON 安全 API
.net 自定义日志类
在.NET中,创建自定义日志类有助于更好地管理日志信息。示例展示了如何创建、配置和使用日志记录功能,包括写入日志文件、设置日志级别、格式化消息等。注意事项涵盖时间戳、日志级别、JSON序列化、线程安全、日志格式、文件处理及示例使用。请根据需求调整代码。
29 13
|
11天前
|
JSON 数据格式
.net HTTP请求类封装
`HttpRequestHelper` 是一个用于简化 HTTP 请求的辅助类,支持发送 GET 和 POST 请求。它使用 `HttpClient` 发起请求,并通过 `Newtonsoft.Json` 处理 JSON 数据。示例展示了如何使用该类发送请求并处理响应。注意事项包括:简单的错误处理、需安装 `Newtonsoft.Json` 依赖,以及建议重用 `HttpClient` 实例以优化性能。
54 2
|
3月前
|
传感器 数据采集 物联网
探索.NET nanoFramework:为嵌入式设备编程的新途径
探索.NET nanoFramework:为嵌入式设备编程的新途
65 7
|
3月前
|
监控 安全 API
Docker + .NET API:简化部署和扩展
Docker + .NET API:简化部署和扩展
46 1
|
3月前
.NET 4.0下实现.NET4.5的Task类相似功能组件
【10月更文挑战第29天】在.NET 4.0 环境下,可以使用 `BackgroundWorker` 类来实现类似于 .NET 4.5 中 `Task` 类的功能。`BackgroundWorker` 允许在后台执行耗时操作,同时不会阻塞用户界面线程,并支持进度报告和取消操作。尽管它有一些局限性,如复杂的事件处理模型和不灵活的任务管理方式,但在某些情况下仍能有效替代 `Task` 类。
|
3月前
|
监控 安全 API
最完美的扩展Docker + .NET API:简化部署和扩展
最完美的扩展Docker + .NET API:简化部署和扩展
102 0
|
3月前
|
API
使用`System.Net.WebClient`类发送HTTP请求来调用阿里云短信API
使用`System.Net.WebClient`类发送HTTP请求来调用阿里云短信API
46 0
|
5月前
|
大数据 开发工具 开发者
从零到英雄:.NET核心技术带你踏上编程之旅,构建首个应用,开启你的数字世界探险!
【8月更文挑战第28天】本文带领读者从零开始,使用强大的.NET平台搭建首个控制台应用。无论你是新手还是希望扩展技能的开发者,都能通过本文逐步掌握.NET的核心技术。从环境搭建到创建项目,再到编写和运行代码,详细步骤助你轻松上手。通过计算两数之和的小项目,你不仅能快速入门,还能为未来开发更复杂的应用奠定基础。希望本文为你的.NET学习之旅开启新篇章!
46 1