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

测试项目结构:

//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文件,都已经包含了这个命名空间了,所以不需要再引用了。

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

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

最后附图运行结果:

时间: 2024-10-18 18:08:17

.Net扩展类的研究-提高编程效率的相关文章

PHP编程开发怎么提高编程效率 提高PHP编程技术_php实例

用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数"(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加 上了双引号). 1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row['id'] 的速度是$row[id]的7倍. 3.echo 比 print 快,并且使用echo的多重参数(译注:指用

浅谈如何提高编程效率?

浅谈如何提高编程效率?1.提高工作经验 经验来自实践.平时多阅读一些技能方面的书籍和来自各网站上的优秀文章.如果说,一本书就是一个台阶,那么在人的一生中将有千万道台阶等着我去跨越.每跨越一步台阶,将得到不可估量的财富,而下一步台阶,又将带我步入一个新的境界,获取新的知识. 看到学到做到.平时有时间多看看大牛写的代码,多看看开源的项目并参与一些开源项目的编码工作.2.和大牛.勤奋的人一起工作 和大牛有经验的程序猿一起工作.和勤奋的人一起共事.永远不要相信"你改变不了环境,但可以改变自已."

PHP提高编程效率的20个要点_php技巧

用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数"(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加 上了双引号).    1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍.         2.$row['id'] 的速度是$row[id]的7倍. 3.echo 比 print 快,并且使用echo

vs.net 2010 扩展插件小结 提高编程效率

注:有些插件需要vs.net professional或更高的版本. 进入正题,打开vs.netàToolsàExtension Manager-如下图: 单击Extension Manager进入vs.net插件管理,如下图所示: 这里面会列出已安装的插件.网上其他插件和插件更新. 在Installed Extensions中,我们可以禁用(Disable)和卸载(Uninstall)安装过的插件. 在Online Gallery中,单击选中一款未安装过的插件(如下图): 然后可以看到一个Do

vs.net 2010 扩展插件小结 提高编程效率_实用技巧

注:有些插件需要vs.net professional或更高的版本. 进入正题,打开vs.netàToolsàExtension Manager-如下图: 单击Extension Manager进入vs.net插件管理,如下图所示: 这里面会列出已安装的插件.网上其他插件和插件更新. 在Installed Extensions中,我们可以禁用(Disable)和卸载(Uninstall)安装过的插件. 在Online Gallery中,单击选中一款未安装过的插件(如下图): 然后可以看到一个Do

提高编程效率: 提高PHP编程效率的53种方法

用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数"(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号).1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍.2.$row['id'] 的速度是$row[id]的7倍.3.echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是

GDB扩展之Command File - 提高调试效率

工欲善其事,必先利其器.GDB的扩展可以通过command file和python脚本完成,这里针对Command file,一个简单高效的扩展方案. 一.简介 GDB Command File可以简单地理解为一串自定义的GDB指令,GDB同时允许用户使用define将一串GDB操作定义为一个指令.比如在命令行模式下将断点保存起来,下次执行时再加载进来,就可以通过两个自定义命令来完成: define bsave     shell rm -f brestore.txt     set loggi

C#中使用消息提高编程效率

1 定义消息  在c#中消息需要定义成windows系统中的原始的16进制数字,比如  const int WM_Lbutton = 0x201; //定义了鼠标的左键点击消息  public const int USER = 0x0400 // 是windows系统定义的用户消息  2 消息发送  消息发送是通过windows提供的API函数SendMessage来实现的它的原型定义为    [DllImport("User32.dll",EntryPoint="SendM

50点提高PHP编程效率 引入缓存提升性能

  0.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数"(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号). 1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row['id'] 的速度是$row[id]的7倍. 3.echo 比 print 快,并且使用echo的多重参数(译注: