C#开发笔记
文章平均质量分 72
无痕的过往
这个作者很懒,什么都没留下…
展开
-
C#开发笔记之22-C#中的int、long、float、double等类型都占多少个字节的内存。
本文由比特飞原创发布,欢迎大家踊跃转载。转载请注明本文地址:https://www.byteflying.com/archives/4396。C#开发笔记概述概述本案例向大家展示C#中的int、long、float、double等类型都占多少个字节的内存。解释using System;public static class Program{ public static void Main(string[] args) { Co...原创 2020-08-17 00:02:15 · 3411 阅读 · 0 评论 -
C#开发笔记之21-C#解析Json(序列化/反序列化)的最佳实践。
本文由比特飞原创发布,欢迎大家踊跃转载。转载请注明本文地址:https://www.byteflying.com/archives/4184。C#开发笔记概述另外可参考文章:C#开发笔记之19-如何用C#实现优雅的Json解析(序列化/反序列化)方案?概述本案例向大家展示使用C#解析Json(序列化/反序列化)的最佳实践。解释[Serializable]public abstract class SerializableBase<T> { pro...原创 2020-08-17 00:02:33 · 258 阅读 · 0 评论 -
C#开发笔记之20-如何用C#深克隆一个对象(优雅方案)?
本文由比特飞原创发布,欢迎大家踊跃转载。转载请注明本文地址:https://www.byteflying.com/archives/3554。C#开发笔记概述另外可参考文章:C#开发笔记之17-如何用C#深克隆一个对象(传统方案)?概述本案例向大家展示如何使用C#实现优雅的深克隆解决方案。解释public class DepthClone<T> { public virtual T Clone() { var memory = ne...原创 2020-08-17 00:02:48 · 293 阅读 · 0 评论 -
C#开发笔记之19-如何用C#实现优雅的Json解析(序列化/反序列化)方案?
本文由比特飞原创发布,欢迎大家踊跃转载。转载请注明本文地址:https://www.byteflying.com/archives/3467。C#开发笔记概述另外可参考文章:C#开发笔记之21-C#解析Json(序列化/反序列化)的最佳实践。概述本案例向大家展示如何使用C#实现优雅的Json解析(序列化/反序列化)方案,内含深克隆基类。解释[Serializable]public abstract class SerializableBase<T> : D...原创 2020-08-17 00:03:06 · 359 阅读 · 0 评论 -
C#开发笔记之18-如何用C#模拟(传统方法)发送Post请求或Get请求?
本文由比特飞原创发布,欢迎大家踊跃转载。转载请注明本文地址:https://www.byteflying.com/archives/3445。C#开发笔记概述概述HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。HTTP 请求方法种类包含 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 等。那么,如何使用C#模拟(传统方法)发送Post请求或Get请求呢?解释public static cl...原创 2020-08-17 00:02:57 · 527 阅读 · 0 评论 -
C#开发笔记之17-如何用C#深克隆一个对象(传统方案)?
本文由比特飞原创发布,欢迎大家踊跃转载。转载请注明本文地址:https://www.byteflying.com/archives/3435。C#开发笔记概述另外可参考文章:C#开发笔记之20-如何用C#深克隆一个对象(优雅方案)?概述本文介绍如何使用C#的反射实现传统的深克隆解决方案?解释public static class CloneHelper { public static object Clone(object obj) { var...原创 2020-08-16 00:14:06 · 333 阅读 · 0 评论 -
C#开发笔记之16-如何用C#获取枚举的中文特性信息?
本文由比特飞原创发布,欢迎大家踊跃转载。转载请注明本文地址:https://www.byteflying.com/archives/3430。C#开发笔记概述概述如何在枚举本身用英文定义的情况下,获取枚举特性中的中文信息?解释public enum GenderType { [Display(Name = "女")] FeMale = 0, [Display(Name = "男")] Male = 1,}定义性别枚举,标记 Dis...原创 2020-08-16 00:14:03 · 862 阅读 · 0 评论 -
C#开发笔记之15-如何用C#获取某月最大天数?
本文由比特飞原创发布,欢迎大家踊跃转载。转载请注明本文地址:https://www.byteflying.com/archives/3412。C#开发笔记概述概述本文介绍使用C#获取某月最大天数的4种方法,欢迎大家批评指正。解释public static class MonthHelper { public static int GetMaxDays(DateTime date) { //使用Calendar类获取某月最大天数 va...原创 2020-08-16 00:13:38 · 1009 阅读 · 0 评论 -
C#开发笔记之14-如何用C#计算闰年?
本文由比特飞原创发布,欢迎大家踊跃转载。转载请注明本文地址:https://www.byteflying.com/archives/3410。C#开发笔记概述概述闰年是公历中的名词。闰年分为普通闰年和世纪闰年。普通闰年:公历年份是4的倍数的,且不是100的倍数,为普通闰年。(如2004年就是闰年);世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年(如1900年不是世纪闰年,2000年是世纪闰年);闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数...原创 2020-08-16 00:13:35 · 1651 阅读 · 1 评论 -
C#开发笔记之13-如何用C#分隔字符串并返回字符串数组?
本文由比特飞原创发布,欢迎大家踊跃转载。转载请注明本文地址:https://www.byteflying.com/archives/3283。C#开发笔记概述概述本文介绍使用C#分隔字符串并返回字符串数组的4种方法,欢迎大家批评指正。解释public static class StringHelper { public static void Test1() { //单字符 var templet = "abcdefghijklmn...原创 2020-08-16 00:13:32 · 631 阅读 · 0 评论 -
C#开发笔记之12-如何用C#统计子字符串出现的次数?
本文由比特飞原创发布,欢迎大家踊跃转载。转载请注明本文地址:https://www.byteflying.com/archives/3161。C#开发笔记概述概述本文介绍如何使用C#统计子字符串出现的次数。基本思路是利用子字符串的长度和原字符串被子字符串替换之后的长度差。解释public static class StringHelper { public static int SubstringCount(string str, string substring...原创 2020-08-16 00:13:30 · 486 阅读 · 0 评论 -
C#开发笔记之11-如何用C#过滤连续相同的字符串?
本文由比特飞原创发布,欢迎大家踊跃转载。转载请注明本文地址:https://www.byteflying.com/archives/3147。C#开发笔记概述概述本文阐述在C#开发过程中,使用正则表达式将连续空格替换成一个空格的方法。解释public static class StringHelper { public static string ReplaceSeriesString(string str) { var replaced = ne...原创 2020-08-16 00:13:28 · 437 阅读 · 0 评论 -
C#开发笔记之10-如何用C#根据发票代码判断发票种类?
本文由比特飞原创发布,欢迎大家踊跃转载。转载请注明本文地址:https://www.byteflying.com/archives/3137。C#开发笔记概述概述发票代码是税务部门给予发票的编码。在查询发票真伪的时候,需要输入发票代码。普通发票,就是通常说的手工版发票代码为12位。增值税专用发票和增值税普通发票的代码原为10位,2018年1月1日开始,我国对增值税普通发票进行调整,新版增值税普通发票(折叠票)发票代码从10位调整为12位。那么,如何使用C#根据发票代码判断发票种类...原创 2020-08-16 00:13:25 · 1393 阅读 · 0 评论 -
C#开发笔记之09-如何用C#判断社会信用代码是否合法?
本文由比特飞原创发布,欢迎大家踊跃转载。转载请注明本文地址:https://www.byteflying.com/archives/3125。C#开发笔记概述概述法人和其他组织统一社会信用代码相当于让法人和其他组织拥有了一个全国统一的“身份证号”,是推动社会信用体系建设的一项重要改革措施。截至2018年3月底,全国法人和非法人组织存量代码转换率为99.8%,存量证照换发率82%;全国个体工商户存量换码率95%。那么如何使用C#来判断社会信用代码是否合法呢?解释publi...原创 2020-08-16 00:13:21 · 495 阅读 · 0 评论 -
C#开发笔记,点点细微,处处真情,记录开发中的痛点
概述本系列文章将会向大家介绍本人实际开发过程中所遇到技术点和心得,旨在抛砖引玉。目录C#开发笔记之01-为什么开源框架会大量的使用protected virtual?C#开发笔记之02-什么时候使用OnXXX方法,这种命名是什么意思?C#开发笔记之03-为什么选择IsNotXXX方法而不是IsXXX方法?C#开发笔记之04-如何用C#优雅的计算个人所得税?C#开发笔记之05-迭代器中的状态机(State Machine)到底是什么?C#开发笔记之06-为什么要尽可能的使用尾递原创 2020-08-08 21:14:11 · 262 阅读 · 0 评论 -
C#开发笔记,点点细微,处处真情,记录开发中的难言之隐
概述 本系列文章将会向大家介绍数百个本人实际开发过程中所遇到技术点和心得,旨在抛砖引玉。C#开发笔记 C#开发笔记之01-为什么开源框架会大量的使用protected virtual? C#开发笔记之02-什么时候使用OnXXX方法,这种命名是什么意思? C#开发笔记之03-为什么选择IsNotXXX方法而不是IsXXX方法? C#开发笔记之0...原创 2018-07-25 15:21:58 · 17410 阅读 · 2 评论 -
C#开发笔记之03-为什么选择IsNotXXX方法而不是IsXXX方法?
C#开发笔记概述为什么有时候要选择IsNotXXX方法而不是IsXXX方法呢?答案是效率。请看以下代码:public abstract class DataSource { public void ShowChart() { if (IsNotJson()) { Convert2Json(); } } }以...原创 2018-08-03 00:41:09 · 17356 阅读 · 0 评论 -
C#开发笔记之01-为什么开源框架会大量的使用protected virtual?
C#开发笔记概述我们在很多开源框架中会经常看到protected virtual标记的方法,那么为什么要使用这2个关键字呢?1、使用protected访问修饰符标记的方法或字段,只能在当前类及其子类中使用,有效的防止了外部无意的更改,使得整个框架可靠性更高;2、使用virtual标记的方法称为虚方法,虚方法可以由设计人员自行决定是否包含方法的实现,配合protected保护特定的方法并...原创 2018-08-03 00:41:19 · 20812 阅读 · 0 评论 -
C#开发笔记之02-什么时候使用OnXXX方法,这种命名是什么意思?
C#开发笔记概述你也许经常会看到别人写的代码里有OnXXX方法,而你却觉得很奇怪,为什么会这样命名呢?它的意义在哪里?OnXXX可以理解为“在XXX事情发生时”,它有3种常见使用方式:1、配合事件、委托或方法一起使用Winform中窗体的Load事件大家一定不会陌生,它由OnLoad方法触发Load事件并执行一个回调。以下代码摘自微软公共语言运行时。using Syste...原创 2018-08-03 00:40:49 · 17101 阅读 · 1 评论 -
C#开发笔记之05-迭代器中的状态机(State Machine)到底是什么?
C#开发笔记概述状态机可以理解为实现了备忘录模式(仅作为理解)的记录状态的机器,这个机器记录的是某个对象的中间状态。对于迭代器来说,它所要记录的状态就是迭代器游标,以指示外部的访问导致了迭代器中指针的位置发生了移动。外部访问迭代器时无需关心迭代器内部的细节,迭代器内部的细节由自身和备忘录(仅作为理解)来维护。每次迭代器被访问时,游标向后移动一位,外部无法准确知道游标当前所处位置也无需知道。...原创 2018-08-03 00:40:41 · 19158 阅读 · 2 评论 -
C#开发笔记之06-为什么要尽可能的使用尾递归,编译器会为它做优化吗?
C#开发笔记概述从A函数跳转到B函数,在B函数执行完毕后,程序为什么能精确的返回到A函数中未执行完的代码区域?首先,我们要知道什么是栈和栈帧。栈是一种特殊的线性表,仅能在线性表的一端-栈顶进行操作,栈底不允许操作。栈的特性:后进先出(Last In First Out or LIFO)栈帧是一个函数执行的环境:函数参数、函数的局部变量、函数执行完后返回到哪里等。为了我...原创 2018-09-09 21:59:41 · 13228 阅读 · 0 评论 -
C#开发笔记之07-如何实现交换2个变量的值而不引入中间变量?
C#开发笔记概述这里给出常见的7种方法,仅供大家参考,部分实现C#不支持。1、加减减法private static void Swap1(ref int a, ref int b) { a = a + b; b = a - b; a = a - b;}2、减减加法private static void Swap2(ref int a, ref ...原创 2018-09-08 02:57:19 · 12555 阅读 · 2 评论 -
C#开发笔记之04-如何用C#优雅的计算个人所得税?
C#开发笔记概述首先,要对个人所得税的计算方式了解之后再看本文。个人所得税的计算使用任何计算机语言来实现都比较简单,关键是如何优雅的实现呢?我们的目标是消除大量难看的if语句。方式1:请参考我的C#设计模式系列博文中行为型模式下的策略模式;方式2:本案例通用使用一些技巧来加载计算个人所得税所依赖的数据,并用扩展方法来优雅的使用之。public class TaxInfo ...原创 2018-07-25 15:00:32 · 18617 阅读 · 3 评论