代码改变世界

随笔分类 - C#

string,特殊的引用类型

2021-05-13 10:28 by 石吴玉, 29 阅读, 收藏, 编辑
摘要: 案例:以下展示了三个类型的两变量赋值。int类型,string类型,类类型 在赋值上,表面上看string类似值类型int.但string是一个引用类型,编译器对其做了特殊处理。 static void Main(string[] args) { //值类型的赋值 int a = 1; int b 阅读全文

c#使用HashSet<T>集合去重

2021-05-12 18:50 by 石吴玉, 299 阅读, 收藏, 编辑
摘要: 说明: using System; using System.Collections.Generic; using System.Linq; namespace JsonTest { public class Program { static void Main(string[] args) { L 阅读全文

C# 事件

2020-10-20 17:01 by 石吴玉, 86 阅读, 收藏, 编辑
摘要: 事件(Event) 基本上说是一个用户操作,如按键、点击、鼠标移动等等,或者是一些提示信息,如系统生成的通知。应用程序需要在事件发生时响应事件。例如,中断。 C# 中使用事件机制实现线程间的通信。 事件在类中声明且生成,且通过使用同一个类或其他类中的委托与事件处理程序关联。包含事件的类用于发布事件。 阅读全文

事件总线 EventBus

2020-09-04 11:53 by 石吴玉, 193 阅读, 收藏, 编辑
摘要: 定义: 事件总线是对发布-订阅模式的一种实现。它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。 处理流程: 事件 = 事件源 + 事件处理 1.发布订阅模式案例 案例GitLab地址:https://gitlab.com/yx06120910/con 阅读全文

扩展方法

2020-09-03 11:48 by 石吴玉, 164 阅读, 收藏, 编辑
摘要: 一、扩展方法必须满足的前提 1.方法所在类必须是静态的 2.方法本身也必须是静态的 3.方法的第一个参数必须是要扩展的那个类型,且必须带有 this关键字 二、优势 可以在不继承,不修改原类的情况下,添加新方法 三、限制 1.虽然是静态类的静态方法,但要由被扩展类型的对象调用。 2.如果扩展类与被扩 阅读全文

托管代码---> CLR --> 自宿主

2020-07-17 10:47 by 石吴玉, 145 阅读, 收藏, 编辑
摘要: 一、托管代码 定义:托管代码同受管制的代码,由公共语言运行库环境(而不是直接由操作系统)执行的代码,托管代码应用程序可以获得公共语言运行库服务,例如:自动垃圾回收、运行库类型检查和安全支持等。这些服务帮助提供独立于平台和语言的、统一的托管代码应用程序行为。 1.托管代码和非托管代码 托管/非托管是微 阅读全文

c#的string --> 一个被编译器做特殊处理的引用类型

2020-01-02 11:53 by 石吴玉, 207 阅读, 收藏, 编辑
摘要: String的不变性 C#里string对象是不变对象(只读),因为一旦创建了该对象,就不能修改该对象的值。有的时候看来似乎修改了,实际是string经过了特殊处理,每次改变值时都会建立一个新的string对象,变量会指向这个新的对象,而原来的还是指向原来的对象 假设有string str1="ab 阅读全文

Lock

2019-12-24 17:54 by 石吴玉, 261 阅读, 收藏, 编辑
摘要: 对象锁和进程锁 阅读全文

理解C#对象生命周期

2019-12-19 11:00 by 石吴玉, 2702 阅读, 收藏, 编辑
摘要: 转载: http://www.cnblogs.com/Jack47/archive/2012/11/14/2770748.html。 .NET 对象是在一个叫做托管堆(managed heap)的内存中分配的,它们会被垃圾回收器(garbage collector)自动销毁。 在讲解之前,你必须知道 阅读全文

c# 一个匿名对象中包含多个子对象的处理方式

2019-11-05 15:53 by 石吴玉, 550 阅读, 收藏, 编辑
摘要: 问题起源: GetAnonymousObject()方法补充 /// <summary> /// 获取匿名对象 /// </summary> public T GetAnonymousObject<T>(object obj, T t) { return (T)obj; } 阅读全文

c# 深复制

2019-10-16 17:41 by 石吴玉, 288 阅读, 收藏, 编辑
摘要: public static T DeepCopyByReflect<T>(T obj) { //如果是字符串或值类型则直接返回 if (obj is string || obj.GetType().IsValueType) return obj; object retval = Activator.CreateInstance(obj.GetType()); FieldInfo[] fields 阅读全文

基于.NET平台常用的框架整理

2019-08-08 17:30 by 石吴玉, 513 阅读, 收藏, 编辑
摘要: 注:原文地址:https://www.cnblogs.com/wolfocme110/p/6505061.html 分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架。 Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度。 Redis: 阅读全文

C# HashSet类型

2019-08-08 17:28 by 石吴玉, 2825 阅读, 收藏, 编辑
摘要: 1.HashSet<T>类,主要被设计用来存储集合,做高性能集运算,例如两个集合求交集、并集、差集等。从名称可以看出,它是基于Hash的,可以简单理解为没有Value的Dictionary。 2.HashSet<T>不能用索引访问,不能存储重复数据,元素T必须正确实现了Equals和GetHashC 阅读全文

c# 扩展方法

2019-07-20 17:24 by 石吴玉, 5106 阅读, 收藏, 编辑
摘要: 1.定义: (1)扩展方法能使你能够向现有类型添加“添加”方法,而无需创建新的派生类型,重新编译或以其他方式修改原始类型。 (2)扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样调用。 注: (1)扩展方法的第一个参数指定该方法作用于那个类型,并且此参数用this为前缀修饰。仅当你使用 阅读全文

c# 判断一个string[]是否全包含另一个string[]

2018-12-17 16:21 by 石吴玉, 2192 阅读, 收藏, 编辑
摘要: // list = normalList.Except(repairList).ToList(); //差集 // list = normalList.Union(repairList).ToList(); //并集 list = normalList.Intersect(repairList).... 阅读全文

c# 小数四舍五入,向上取整,向下取整,见角进元保留多个小数位数

2018-12-17 16:19 by 石吴玉, 1801 阅读, 收藏, 编辑
摘要: /// /// 实现数据的四舍五入法 /// /// 要进行处理的数据 /// 保留的小数位数 /// 四舍五入后的结果 public decimal Round(decimal v, int x) { var isNegative = false; ... 阅读全文

c# 正则验证

2018-12-06 10:50 by 石吴玉, 145 阅读, 收藏, 编辑
摘要: 1.验证百分数 阅读全文

c# 日期函数DateTime.ToString()日期的各种格式

2018-11-27 10:22 by 石吴玉, 928 阅读, 收藏, 编辑
摘要: //c# datetime 格式化 DateTime dt = DateTime.Now; //2017/11/14 10:46:56 label1.Text = dt.ToString();//2017/11/14 10:46:56 label2.Text = dt.ToFileTime().ToString();//131551012169015429 label3.Text = dt.T... 阅读全文

c# 行转列动态赋值给layui

2018-10-19 15:08 by 石吴玉, 1276 阅读, 收藏, 编辑
摘要: 数据库存储格式 期望前端显示样式 以下是代码: (1)控制器: (2)逻辑层数据处理 (3)仓储层数据源 (4)行转列方法:ToPivotArray (5)前端layui接收 阅读全文

c# base64编码解码

2018-10-11 10:58 by 石吴玉, 398 阅读, 收藏, 编辑
摘要: 1.base64转pdf 阅读全文