设计模式漫谈之责任链

这段时间谈恋爱了,也就没更新随笔。后天就软考了,不过我已经抱着失败是成功他妈的准备了。做软件不能急,要稳着性子做几年再说,刚毕业的应届生啥都想学,老想一口吃个胖子,没有5年以上的工作经验,就是再NB也不行,搞技术的要有工匠精神,而工匠精神必须沉浸下去搞很多年技术。没有耐心研究技术,贪多求快,这样不适 ... »

关于老系统的重构和优化选择

最近公司领导层脑袋发热要转java,干掉.net,所以碰到一个系统新的需求过来都要评估一下是重构还是原有的基础上修改 基于以上背景也就诞生了这篇文章:到底重构还是优化 我的建议是:工时决定一切 老系统重构会遇到2个问题: 1.业务的重新梳理 2.代码逻辑的梳理 业务的重新梳理:不用分析,大家做个系统 ... »

【游戏开发】Excel表格批量转换成lua的转表工具

一、简介 在上篇博客《【游戏开发】Excel表格批量转换成CSV的小工具》 中,我们介绍了如何将策划提供的Excel表格转换为轻便的CSV文件供开发人员使用。实际在Unity开发中,很多游戏都是使用Lua语言进行开发的。如果要用Lua直接读取CSV文件的话,又要写个对应的CSV解析类,不方便的同时还 ... »

C# 操作Word文本框——插入表格/读取表格/删除表格

在文本框中,我们可以操作很多元素,如文本、图片、表格等,在本篇文章中将着重介绍如何插入表格到文本框,插入的表格我们可以对表格进行格式化操作来丰富表格内容。此外,对于文本框中的表格内容,我们也可以根据需要来读取表格或者删除表格。 使用工具 Free Spire.Doc for .NET 6.3(免费版 ... »

[SQL Server]用 C# 在 LinqPad 建立 Linked Server 跨服务器数据库操作

在涉及老项目数据迁移的时候,数据库结构已经完全发生变化,而且需要对老数据进行特殊字段的处理,而且数据量较大,使用Navicat导出单表之后,一个表数据大概在100多万的样子,直接导出SQL执行根本行不通,执行到一般就GG。 之后尝试使用LINQ PAD直接操作两个数据库进行数据迁移,搜索一番,得知L ... »

基于Emit实现的C#版本的BeanCopier

在java的技术栈当中,著名的Cglib库里面有一个BeanCopier,这个类的功能就是可以完成两个对象的属性复制工作(哪怕属于两个不同的类). 今天本人通过.net内置的System.Reflection.Emit命名空间写了一个.net版本的BeanCopier,实现原理是基于Emit来直接操 ... »

C#HttpUtility.UrlEncode 大写问题

工作上和另一个公司对接,调对方的api需要用到md5加密,加密前要使用HttpUtility.UrlEncode,对方接口一直返回验证错误,定位了问题发现是中文编码使用HttpUtility.UrlEncode导致的。 C#中HttpUtility.UrlEncode返回的url编码是小写的,但对方 ... »

利用反射机制获取未知类型的枚举的信息

开发游戏设置选项遇到一个问题,我有两个枚举,一个是屏幕分辨率,一个是语言 我需要在不知道一个枚举到底是哪一个枚举类型的情况下,获取这个枚举的值以及这个枚举类型的所有可能值。 比如 Enum b = ScreenSize._1280x720; 我希望我能获取到他的值 1 和所有可能值 _1920x10 ... »

C# 插入、删除Excel分页符

引言 对Excel表格设置分页对我们预览、打印文档时是很方便的,特别是一些包含很多复杂数据的、不规则的表格,为保证打印时每一页的排版美观性或者数据的前后连接的完整性,此时的分页符就发挥了极大的作用。因此,本文将介绍C#设置Excel分页的方法。当然,对于Excel表格中已有的分页符,如果我们也可以根 ... »

深入理解.net - 4.你必须知道的String

为什么要单独写string,主要是它太常用了,同时又太特殊了,特殊到CLR对它的处理都和其它对象不一样。简直可以称为VIP用户啊。本文并不是一篇介绍如何使用string的文章,而是旨在阐述string的一些本质特性。 引用类型 首先要明确string对象是引用类型的,具有引用类型一切特征, "上篇文 ... »

Mego(05) - Mego Tools使用教程

前言 使用过EntityFramework6的朋友应该都知道EF中的PowerTools这个工具可以帮助初学者或者开发人员快速构建一个EF的数据上下文,并且可以很直观的看到实体之间的关系。不过目前升级到EFCore后就只有命令行工具,并不那么直观。今天和大家介绍的工具也是具有同样的作用。 首先大家需 ... »

Mego(05) - Mego for Visual Studio Extension

前言 可能对于一个新的框架而言使用入门对于陌生人而言是比较困难的,因此为了最大限度的为使用者提供便利性,我们给Mego框架开发了针对Visual Studio的集成开发工具,让大家可以像使用Entity Framework 6 一样非常快速的创建一个Mego数据上下文。 安装 大家可以通过微软的 " ... »

C#现代代码风格指南

参考资料: "asp.net 主页仓库" 代码风格 —— 一般原则 最通用的指导原则是我们使用所有的VS默认设置的代码格式,除了我们把系统命名空间放在其他命名空间之前(这在VS中是默认的,但是在VS的更新版本中已经改变了)。 1. 使用四个空格缩进(不用Tab) 2. 私有字段使用 3. 除非必要, ... »

C# 发展史

C 发展史 Intro 本文主要总结介绍C 每个版本带来的不同的语言特性。 C ,读作C Sharp,是微软推出的一种基于.NET平台的、面向对象的高级编程语言。是微软公司在2000年发布的一种新的编程语言,主要由安德斯·海尔斯伯格(Anders Hejlsberg)主持开发,它是第一个面向组件的编 ... »

C# 获取当前年份的周期,周期所在日期范围

最近有一个项目要用到年份周期,用于数据统计图表展示使用,当中用到年份周期,以及年份周期所在的日期范围。当初设想通过已知数据来换算年份周期,经过搜索资料发现通过数据库SQL语句来做,反而更加复杂。现在改变思路通过C#后台代码来算出两段日期范围中年份周期,在依据年份周期所对应的日期范围进行数据库查询进行 ... »

获取系统的网络状态与无线网的信号强度(格数)

一台电脑,有时通过有线网连接网络(调制解调器/局域网),如有网卡也可连接wifi。那么如何获取WLAN是否连接,和相应的信号强度呢? 就以下俩点: 获取电脑连网状态 获取无线网络的信号强度 获取电脑连网状态 1. InternetGetConnectedState 此函数获取网络状态有延时,且对网上 ... »

C# Dispose模式详细分析

C#Dispose模式 目的: 为了及时释放宝贵的非托管资源和托管资源,并且保证资源在被gc回收的时候可以正确释放资源,同时兼顾执行效率 必须遵循的事实: 1 托管资源释放: 由另一线程的gc进行释放,当托管的对象没有被引用时,就会在“适当的时候”进行回收 如果定义了析构函数,回收的时候会调用析构函 ... »

hMailServer C#API

公司企业邮箱需要使用hMailServer邮件服务,因需求需要有用户的添加、删除、密码重置接口,参考网上一些大神们的资料后,自己写了一个C#的api类 参考网上的一些资料: 源码地址 https://github.com/hmailserver/hmailserver/ https://blog.c ... »