随笔分类 - 重学c# 系列
对c# 系统重学
摘要:前言 简单介绍一下list。 正文 这里以list为介绍。 private static readonly T[] s_emptyArray = new T[0]; public List() { this._items = List<T>.s_emptyArray; } list 本质是一个数组。
阅读全文
摘要:前言 重学c#系列继续更新,简单看一下字典的源码。 看源码主要是解释一下江湖中的两个传言: 字典foreach 顺序是字典添加的顺序 字典删除元素后,字典顺序将会改变 正文 那么就从实例化开始看起,这里我们假定key 是string 情况下开始看。 一般我们之间实例化: Dictionary<str
阅读全文
摘要:前言 简单整理一下struct。 正文 struct 对于struct 而言呢,我们往往会拿class作为对比,但是呢,我们在初学阶段用class来替代struct,struct的存在感越来越低了。 那么是什么原因使我们经常使用struct呢?我感觉很简单的一句话就是struct能做的class都能
阅读全文
摘要:前言 对于索引器,我们肯定不会陌生。为什么会有索引器这个东西呢?我们发现这东西很像是属性,只是通过索引方式去调用,那就慢慢揭开他的面纱吧。 正文 假设我们要对外暴露一个数组,为了体现其封装性,我们使用数组。 public Class Instance{ public int[] IntArr{get
阅读全文
摘要:前言 以前整理过缓存的东西在: https://www.cnblogs.com/aoximin/p/12727659.html 只是粗略的例子,因为真的要去介绍缓存这个东西,要从内存开始,是一个有时间系列。 该文通过分析盛派源码,简单介绍如何实现一个简单的缓存机制。 正文 查看源码的出发点,我当时是
阅读全文
摘要:前言 接着异常七后,因为以前看过盛派这块代码,正好重新整理一下。 正文 BaseException 首先看下BaseException 类: 继承:public class BaseException : ApplicationException 这个ApplicationException 前文中
阅读全文
摘要:前言 对上节异常的补充,也可以说是异常使用的注意事项。 正文 减少try catch的使用 前面提及到,如果一个方法没有实现该方法的效果,那么就应该抛出异常。 如果有约定那么可以按照约定,如果约定有歧义,那么还是要抛出异常。 我们知道使用try catch 其实是要消耗性能的,那么是否能避免使用tr
阅读全文
摘要:前言 用户觉得异常是不好的,认为出现异常是写的人的问题。 这是不全面,错误的出现并不总是编写程序的人的原因,有时会因为应用程序的最终用户引发的动作或运行代码的环境而发生错误,比如你用android4去安装现在的微信,或者说我们写的android程序不需要兼容android4,需要的效果就是在andr
阅读全文
摘要:前言 托管资源到是好,有垃圾回收资源可以帮忙,即使需要我们的一些小小的调试来优化,也是让人感到欣慰的。但是非托管资源就显得苍白无力了,需要程序员自己去设计回收,同样有设计的地方也就能体现出程序员的设计水平。 托管类在封装对非托管资源的直接引用或者间接引用时,需要制定专门的规则,确保非托管资源在回收类
阅读全文
摘要:前言 这是续第三节。 概况垃圾回收与我们写代码的关系: 强引用和弱引用 针对共享 Web 承载优化 垃圾回收和性能 应用程序域资源监视 正文 强引用和弱引用 垃圾回收器不能回收仍在引用的对象的内存——这是一个强引用。它可以回收不在根表中直接或间接的托管内存。然而,有时可能会忘记释放内存。 注意:如果
阅读全文
摘要:前言 c# 托管和非托管比较重要,因为这涉及到资源的释放。 现在只要在计算机上运行的,无论玩出什么花来,整个什么概念,逃不过输入数据修改数据输出数据(计算机本质),这里面有个数据的输入,那么我们的内存有限啊,这里面就牵扯到数据释放。 看下c# 的垃圾回收是怎么样的。 了解垃圾回收之前首先要了解数据,
阅读全文
摘要:前言 c# 是怎么运行的呢?是否和java一样运行在像jvm的虚拟机上呢?其实差不多,但是更广泛。 c# 运行环境不仅c#可以运行,符合.net framework 开发规范的都可以运行。 c# 程序在.net framework 上运行,而这个.net framework是windows独有的,所
阅读全文
摘要:前言 什么是c#呢? 首先你是如何读c#的呢?c sharp?或者c 井? 官方读法是:see sharp。 有没有发现开发多年,然后感觉名字不对。 tip:为个人重新整理,如学习还是看官网,c# 文档天下无敌。 正文 c#和java一样,他们之间有很多故事,尤其是官司,c#同样是一门面向对象的语言
阅读全文
浙公网安备 33010602011771号