C# Equals 和 GetHashCode 方法认知及Distinct方法解析
摘要:参照: 生成 C# Equals 和 GetHashCode 方法重写 - Visual Studio (Windows) | Microsoft Learn 如何修改字符串内容 - C# | Microsoft Learn 在C#中,Equals 和 GetHashCode 方法用于对象的比较和哈
阅读全文
C#中使用CAS实现无锁算法
摘要:C#多线程下的调优 (qq.com) C#中使用CAS实现无锁算法 (qq.com)
阅读全文
C#自动属性提供默认值的方法
摘要:编程之路转自:cjavapy.com/article/55/ _ .NET(C#)中,自动属性(Auto-Implemented Properties)提供了一种简洁的方式来实现属性而无需显式定义字段。但直到C# 6.0版本之前,不能在自动属性的声明中直接为其指定默认值。从C# 6.0开始,可以在自
阅读全文
解决多个if-else的方案
摘要:参考链接: 遇到大量if记住下面的口诀: 互斥条件表驱动 嵌套条件校验链 短路条件早return 零散条件可组合 解释: 互斥条件,表示几个条件之间是冲突的,不可能同时达成的。比如说一个数字,它不可能同时是4和2。在这种情况下用表驱动就非常合适,表驱动的核心是key-handler,拿某个key去对
阅读全文
.net core雪花算法,返回精度丢失问题
摘要:参照: 【.net core 3.1】解决雪花ID跟前端交互问题_程序员查理的博客-CSDN博客
阅读全文
C#时间戳转换
摘要:参照: C# 时间戳与DateTime/DateTimeOffset的相互转换 - 一直傲娇的鲨鱼 - 博客园 (cnblogs.com)
阅读全文
C#基础——不可变集合
摘要:参照:https://mp.weixin.qq.com/s/NFBc2bNeHpdadh89T44Lpg 在 .NET Core 中就存在着这三大 IReadOnlyList,IReadOnlyDictionary 和 IReadOnlyCollection 不可变集合
阅读全文
c#运算符重载(operator)
摘要:适用范围:C# 7.0及以上版本 C#学习-运算符重载(operator) - 百度文库 (baidu.com) 官网文档:Operator overloading - C# reference | Microsoft Docs public readonly struct Fraction { p
阅读全文
抽象方法(abstract)、虚方法(virtual)及接口(interface)
摘要:抽象方法(abstract)、虚方法(virtual)及接口(interface) 抽象方法(abstract) 定义:abstract关键词标记的方法——抽象方法 特征: 抽象方法只能定义在抽象类里 没有方法体,只能通过子类重写实现功能 不能被所在的类直接调用,因为抽象类不能被实例化 抽象类的子类
阅读全文
C# 基础——CLR、托管代码及非托管代码
摘要:C# 基础——CLR、托管代码及非托管代码 应用程序的类型 使用.net的编程语言(C#、F#、VB)创建的应用程序,都会被编译器编译成中间语言IL语言,在CLR(公共语言运行时)中运行。 比如:控制台程序(Console)、窗口应用程序(winform、wpf),Web应用程序:ASP.NET M
阅读全文
C#——基于CancellationTokenSource实现Task的取消
摘要:参照:第七节:利用CancellationTokenSource实现任务取消和利用CancellationToken类检测取消异常。 - Yaopengfei - 博客园 (cnblogs.com) Microsoft.NET Framework提供了一个标准的取消操作模式。这个模式是协作式的,意味
阅读全文
C# 线程(四)——Task初始
摘要:一、相关介绍 .NetFramework3.0时代实现,C#中多线程、异步编程最佳实践,特点: 1、所有的Task操作的线程来自线程池,避免了频繁的线程创建及销毁 2、含有丰富的Api,能满足我们在开发过程中的各种场景(异步、多线程的执行顺序控制) Task的执行底层还是thread执行 二、Tas
阅读全文
C# 线程(二)——Thread学习
摘要:参照:C#多线程 - .NET开发菜鸟 - 博客园 (cnblogs.com) C# Thread 线程状态知识 - 大圣的笑 - 博客园 (cnblogs.com) 背景: 在.NET Framework1.0时代就诞生了Thread,也有大量相关的Api支持,thread创建是前台线程 缺陷:
阅读全文
C# 线程(一)——基础概念(线程与进程、前后台线程)
摘要:一、基础概念 1.1线程与进程 线程——是一个可执行路径,它可以独立于其他线程执行。 进程——每个线程都在操作系统的进程(Process)内执行,而操作系统则提供了程序运行的独立环境,它提供了一个应用程序的一个实例所需要使用资源的集合(执行一个.exe文件其实就是启动一个进程,也是启动一个应用程序实
阅读全文
C# Delegate 委托及事件
摘要:1、委托Delegate实质 由一个修饰符+ delegate,跟方法的定义比较类似,也需要声明参数和返回值。声明一个委托,就是声明一种方法签名(参数+返回值),只要是和声明委托方法签名相同的方法,都可以被委托实例托管。 理解:具有相同方法签名的方法(method),他们的调用都可以通过相同方法签名
阅读全文
C# Attribute特性
摘要:代码见文件:AttributeStudy.zip 特性无处不在,各种框架:MVC、IOC、ORM、WebService无处不在,常见的[Serializable]、[Controllers]等等 一、基本概念 可以理解成”标签“,给被标记的目标(class、property、field、method
阅读全文
C# 反射 Reflection
摘要:参考资料: C#反射机制 - 知乎 (zhihu.com) 一、基本概念 .Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(Module)’、‘类型(class)’组成,而反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组成部分的相关信息。 Assembly——可以获得
阅读全文
C# 泛型
摘要:1、泛型类型:泛型类、泛型方法、泛型委托 //泛型类 public class GenericClass<T> { public void GetTypes() { Console.WriteLine(typeof(T).Name); } } public class GenericTypeClas
阅读全文
C#基础——超级方便的ExpandoObject类别
摘要:这东西是.NET Framework 4.5 的新东西..发现这个,大概就跟发现新大陆一样的兴奋,让我再次赞叹Anders Hejlsberg 之神.. 这边有MSDN : http://msdn.microsoft.com/en-us/library/system.dynamic.expandoo
阅读全文
泛型——
摘要:1、什么是泛型 延迟声明 泛型 参数:在声明的时候定义一个占位符(尖括号),指定类型参数,在调用的时候确定类型 泛型方法:一个方法满足了不同类型的需求 泛型类:一个类满足不同的需求,其子类在定义时要指定类型 泛型接口:一个接口满足不同接口的需求 泛型委托:一个委托满足不同委托的需求 泛型缓存: 1、
阅读全文