利用C#Reflector等反编译工具学习精练的编程方法

        这两天,可把本人愁坏了。固态硬盘坏了,给客户修修补补了两个多月的C#WinForm软件,由于疏忽大意,没有备份,整个白天干了!怎么办,反编译吧。于是从客户处把编译后EXE、DLL文件拿回来,一番折腾,还真的反编译过来了,但是要想整体使用,不太现实,但是编写的代码还是可以复制、粘贴过来的。一个意外的收获是:反编译过来的代码比我原来的代码有些地方要简洁的多。看来,对于自己编写的代码精练与否,以后还得多用反编译工具。下面发两段代码供大家分析:


原来的代码:

            //如果已有的计量单位表中无本次输入计量单位的名称,则添加
            string sql = "select * from Unit where Name = '" + product.DW + "'";
            DataTable dtUnit = SqlHelp.Database.ExecSqlReturnDataTable(sql);
            if (dtUnit.Rows.Count == 0)
            {
                Unit unit = new Unit();
                unit.Id = DataAccess.Unit.getUnitID();
                unit.Name = product.DW;
                unit.UnitAdd();
            }

用Reflector反编译后的代码:

            if (Database.ExecSqlReturnDataTable("select * from Unit where Name = '" + product.DW + "'").Rows.Count == 0)
            {
                new DataAccess.Unit { Id = DataAccess.Unit.getUnitID(), Name = product.DW }.UnitAdd();
            }

原来的代码:

            //如果已有的品种表中无本次输入的品种名称,则添加
            if (product.ChanDi != "")
            {
                string sql1 = "select * from PinZhong where Name = '" + product.ChanDi + "'";
                DataTable dtPinZhong = SqlHelp.Database.ExecSqlReturnDataTable(sql1);
                if (dtPinZhong.Rows.Count == 0)
                {
                    PinZhong pinzhong = new PinZhong();
                    pinzhong.Id = DataAccess.PinZhong.getPinZhongID();
                    pinzhong.Name = product.ChanDi;
                    pinzhong.PinZhongAdd();
                }
            }

用Reflector反编译后的代码:

            if ((product.ChanDi != "") && (Database.ExecSqlReturnDataTable("select * from PinZhong where Name = '" + product.ChanDi + "'").Rows.Count == 0))
            {
                new PinZhong { Id = PinZhong.getPinZhongID(), Name = product.ChanDi }.PinZhongAdd();
            }

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

掌控自身命运

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值