说说重复发明轮子的事儿

    以下是身边发生的重复发明轮子事儿,如有雷同,纯属巧合。

1. 键盘按键卡死的处理代码

    某个程序,按一下回车键是选中列表中的第一条记录,再按一下是将这条记录标记为“已处理”。也就是说,连续按回车键会将大量的记录标记为“已处理——没有人会不停的按回车键,但是,如果是回车键按下去卡住了呢?

    因为这个程序用在工业场合,所以按回车键的次数很多,键盘使用的时间长了之后出现卡住的情况比较多。为了解决按键卡死的问题,这个程序里面专门添加了一段代码,用了判断按键是否卡住了。写代码和测试费了一番功夫。

    其实,windows已经内置了这个功能,叫做“筛选键”(Filter key),只要在”控制面板->键盘“里设置一下就好。

2. 自定义XML序列化

    某个程序,通过XML和其他程序传递数据,需要对XML的内容进行控制,对于特定的接收方删除XML中的一些元素(element)。

    这个程序是.NET开发的,生成XML使用了XML序列化的方法,将class的对象序列化为XML;删除XML元素的方法,是直接操作序列化之后的XML,使用类似DOM的方法一个节点一个节点的查找,找到目标元素后删除;如果XML的结构只有一层,问题也不大,但是如果有好几层,想想有多么恐怖,比如

<A>

    <B>

    <B1>XXX</B1>

        <C>

        <C1>XXX</C1>

            <D>

                <D1>XXX</D1>

                <D2>XXX</D2>

            </D>

          </C>

    </B>

</A>

    其实,.NET提供了两种更便捷的方法来应对这种情况:一是自定义序列化,一是XSLT(XSLT的效率可能稍微低一些)。

原文地址:https://www.cnblogs.com/ols/p/1890887.html