c#
文章平均质量分 89
你一身傲骨怎能输
我是一名低调的游戏程序员!!!!!!!!
非常高兴通过互联网认识认识大家,有事可以留言,交个朋友。
展开
-
探索编译器编译c#程序神秘面纱
词法分析是编译器的第一步,它将源代码文本分解成一个个的标记。通过定义标记类型、创建标记类、编写词法分析算法和处理错误,可以构建一个简单的词法分析器。在实际的编译器开发中,词法分析器通常会更加复杂和健壮,以处理各种边界情况和错误。继续深入探讨词法分析的细节,我们可以进一步讨论如何处理特定的标记类型以及如何优化词法分析器的性能。通过处理特定的标记类型和使用优化技术,可以构建一个高效且健壮的词法分析器。在实际的编译器开发中,词法分析器通常会更加复杂和灵活,以处理各种边界情况和错误。原创 2024-09-20 16:50:29 · 2088 阅读 · 0 评论 -
using语法糖
using语句通过编译器转换和结构确保了资源的正确释放。它依赖于接口和.NET运行时的垃圾回收机制,提供了一种简洁且安全的方式来管理需要显式释放的资源。除了基本的using语句使用方式外,还有一些高级用法和注意事项可以帮助你更好地管理资源。using语句是C#中管理资源的一种强大工具,它通过编译器转换和结构确保了资源的正确释放。通过理解其底层原理和使用注意事项,你可以更有效地使用using语句来编写健壮且易于维护的代码。usingusing语句是 C# 中管理资源的一种强大工具,它通过编译器转换和。原创 2024-09-19 20:05:38 · 570 阅读 · 0 评论 -
.net框架漫谈(二)
NET Framework 的继续发展和演变导致了 .NET Core 的出现,这是一个跨平台、开源的框架,它旨在解决 .NET Framework 的一些局限性,比如对 Windows 平台的依赖和模块化程度不足。随着时间的推移,Microsoft 已经推出了.NET Core和.NET 5+,这些是.NET Framework的现代、跨平台的替代品,它们提供了许多相同的功能,但也引入了新的功能和改进,同时去除了一些旧的技术。因此,即使有操作系统层面的安全网,良好的内存管理实践仍然是非常重要的。原创 2024-04-11 11:28:54 · 722 阅读 · 0 评论 -
.NET框架漫谈(一)
随着技术的发展,Microsoft推出了.NET Core,这是.NET框架的跨平台、开源版本,它旨在支持更多种类的应用程序和运行在不同的操作系统上。后来,.NET 5和随后的版本统一了.NET Core和.NET框架,提供了一个单一的.NET运行时和类库,用于构建所有类型的应用程序。在.NET中,程序集的卸载与应用程序域(AppDomain)的概念紧密相关。在 .NET 框架中,元数据是关于程序的数据,它描述了程序中定义的类型,例如类、接口、枚举等,以及这些类型的成员,如方法、属性、事件和字段。原创 2024-04-11 11:01:40 · 541 阅读 · 0 评论 -
c#之通过自定义集合彻底搞懂foreach这个语法糖
**我直接贴出代码,每个代码的作用我已经注释上,后面在单独分析下语法糖,一定要上机测试。 using System; using System.Collections; using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 基本原创 2017-11-07 13:40:57 · 1735 阅读 · 0 评论 -
C#之internal访问修饰符
internal:中文翻译为内部的。 那么我们假如作为C#程序的开发者 当我们建立一个类的时候开始不写类的访问修饰符是什么样呢 class Test { //定义字段 internal protected int intNumber = 23; } 其实也许很多人以为是等价于 public class Test原创 2017-11-06 01:52:08 · 17723 阅读 · 0 评论 -
C#之base和this关键字内部神秘面纱
base和this的区别和联系区别:base并不是对象 而this是代表当前执行代码体所在的对象,是可以直接输出的,base你可以看成一种标识符,或者看成身份证,或者看成名称空间的作用。联系都可以通过base和this调用对象上的实例上的可访问成员变量和成员方法。现在来谈下base中的对象地址是什么时候开始保存的,当我们创建对象的时候,开辟完对象的内存空间的时候,编译器将会拿到内存地址首地址原创 2017-11-06 04:27:22 · 399 阅读 · 0 评论 -
c#中的托管资源和非托管资源的释放问题
托管资源指的是.NET可以自动进行回收的资源,主要是指托管堆上分配的内存资源。托管资源的回收工作是不需要人工干预的,有.NET运行库在合适调用垃圾回收器进行回收。 非托管资源指的是.NET不知道如何回收的资源,最常见的一类非托管资源是包装操作系统资源的对象,例如文件,窗口,网络连接,数据库连接,画刷,图标等。这类资源,垃圾回收器在清理的时候会调用Object.Finalize(...转载 2018-02-02 06:15:07 · 2612 阅读 · 1 评论 -
基本数据类型int转btye[]数据类型的方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharp内功修炼 { /// /// 测试int类型数据转字节数组 /// int...原创 2018-05-02 14:17:44 · 867 阅读 · 0 评论 -
通俗易懂的让你彻底搞懂冒泡排序的由来
先上图:冒泡排序是属于简单排序当中的,为什么叫冒泡排序呢, 假如我们把我们的元素用泡泡去比喻,那么数据不同,泡泡就不同大小。假如我们想把数据从小到大排序,那么在排序的过程中小泡泡会慢慢往上被交换出来也叫冒上来。分析冒泡过程:既然冒泡排序就是元素不断交换的过程,那么我们图中假如有5个泡泡,那么我们假如开始第一趟冒泡比较,第一个泡和第二个泡比较大小,大的泡泡会放在下面的位置,那么...原创 2017-11-12 10:30:28 · 17025 阅读 · 7 评论 -
非递归中序遍历二叉树算法详解
注意学习这个算法需要随时可以在脑海中输出二叉树的中序遍历的序列 举例:如上图,我们就看到一棵二叉树:那么我们是不是马上可以想到这棵二叉树的中序遍历序列是什么呢?我直接给出答案:D B EF A G H C I 我们如果不适用递归中序遍历二叉树即实现输出二叉树中的全部数据并且每个节点只访问一次的操作。那么在我们的算法中是通过单独开内存来保存节点数据,我们这个内存指的其实就是我们学过的栈数据结构S原创 2017-11-11 11:10:07 · 32321 阅读 · 3 评论 -
几句话让你明白约束的作用
public class AA { public void Display() { }}public class MyGengeric<T>{ public T GetMax<T>(T num1,T num2) where T:AA { num1.Display(); num1.a = 20;原创 2017-11-07 17:12:18 · 441 阅读 · 0 评论 -
C#中Dictionary<Tkey,Tvalue>泛型集合漫谈
Dictionary原创 2017-11-07 15:27:00 · 1496 阅读 · 0 评论 -
c#之站在IL语言角度彻底搞定HashTable输出的值和插入的时候顺序不一样
我贴出代码让大家上机测试:支持上机 using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace 基本功修炼 {class Program{原创 2017-11-07 15:01:17 · 556 阅读 · 2 评论 -
彻底搞懂事件与委托在商业项目的应用以及区别
废话不多说,先贴代码,同样希望大家上机测试,运行,在分析每行代码的作用,每行代码作用我已经上注释/* * * 事件注册方: * 目的:负责事件的注册,至于事件什么调用,如何调用不关心 * * */using System;using System.Collections.Generic;/// <summary>/// 商业项目中事件与委托的应用原创 2017-11-08 22:58:42 · 345 阅读 · 0 评论 -
彻底搞懂C#之Yield Return语法的作用和好处
还是和以前一样,我先上代码,请大家先拿到我的代码或者你跟着敲,运行看效果,以及理解每行带代码的作用。 我们要带着为什么要用Yield这个关键字,不用可以吗这个目的去学知识,我相信会更加的有意思。首先我贴出平时正常输出偶数集合的办法/* * * 学习Yield Return 语法 * 使用两个方法,显示1 - 100之间的全部偶数 * * */using System;usin原创 2017-11-09 00:11:27 · 52041 阅读 · 12 评论 -
几段代码让你彻底搞懂编码出现乱码问题(File类的几个读写文本问题)
废话不多说;我先上图我的代码是用File类读取文本里面的内容,开始也是我写入的。 其实关于编码乱码问题,很多人都说你打开文本另存为UTF-8就搞定。 那么如果我来说下里面的原理;其实我们默认不写编码格式就默认为ASCII. 因此当我们打开去看的时候用的编码格式默认其实是UTF-8 你写入和读取的编码不同,肯定不行。看代码,“` using System; using System.Col原创 2017-11-09 02:23:42 · 3898 阅读 · 0 评论 -
文件流FileStream技术出现的理由漫谈
还是废话不多说,一般我们读写文本通过File类中的几个方法是可以满足我们的需求的,如下 File.ReadAllLines("文件路径")这个方法读取文本的时候是把文本中的每一行数据读取到一个字符串当中,然后就返回一个字符串数组 File.ReadAllText("文件路径");这个方法读取文本的时候是一次性把文本中的全部数据包括换行符读入到一个字符串当中。我们就可以直接输出 Fil原创 2017-11-09 03:06:27 · 2883 阅读 · 3 评论 -
几分钟让你彻底搞懂 c#之using和try-catch-finaly的区别和联系
还是和以前一样废话不多说我先上代码“` using System; using System.Collections.Generic; using System.IO; using System.Reflection; using System.Text;namespace IO目录管理 { class Program { private strin原创 2017-11-09 04:41:19 · 8561 阅读 · 2 评论 -
几分钟搞懂c#之FileStream对象读写大文件
还是一样,我先上代码,但是为了你们测试结果和我一样,必须先有准备工作,否则会找不到目录或者文件就没有效果;既然是读取大文件,那么这个文本必须存在现在来看目标目录其实这里的文本文件可以删除,因为我们写入文本数据的时候的模式是当没有找到文件就创建新的。下面上的上代码“` using System; using System.Collections.Generic; using System.IO;原创 2017-11-09 05:07:06 · 25946 阅读 · 9 评论 -
Unity中所谓的回调函数
我先描述一个情形: 比如一个A程序员写了一个比较两个数大小的方法 bool CompareTwo(int a, int b) //约定返回真表示a >= b { return a >= b; }现在B程序员想判断1和2哪个大。但是他只有数据不打算写方法,他比较笨。所以他就调A程序员写的代码,你可以看成是库。原创 2017-10-29 01:48:07 · 5057 阅读 · 1 评论