随笔分类 - c#
摘要:原文连接:https://michaelscodingspot.com/ways-to-cause-memory-leaks-in-dotnet/作者 Michael Shpilt。授权翻译,转载请保留原文链接。 任何有经验的.NET开发人员都知道,即使.NET应用程序具有垃圾回收器,内存泄漏始终会
阅读全文
摘要:HTTP协议 HTTP协议是一种Web通信协议,通过特定的规则来实现服务器跟客户端的通信。HTTP协议有这样几个特点: (1)面向无连接的,一次只能处理一个请求,HTTP1.0服务器解析完客户端请求并作出应答后,会关闭连接;对于HTTP1.1应答后会等待一个非常短的时间,如果这段时间没有新请求,就会
阅读全文
摘要:既然要学.NET,就要先认识认识她,我不喜欢大段大段文字的东西,自己通过理解,画个图,来看看.NET的沉鱼落雁,闭月羞花之容。 最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基础。.NET Framework不是凭空出来的,实际上API,COM+,和一些相关驱动依然是它的基石
阅读全文
摘要:先不分析上面这段配置信息是什么意思。我们先来回想一下我们的日志类通常用来做什么,假设我们有一个库存管理系统,分为两大模块,一个是出库,一个是入库。我们可能想要出库的相关信息保存在某一个文件夹里面,入库的信息存在另一个文件夹里面。这样,我们通常的做法是用在日志类中不同的路径将日志写到不同位置,但是如果
阅读全文
摘要:(1).NET 应用程序中的内存 您大概已经知道,.NET 应用程序中要使用多种类型的内存,包括:堆栈、非托管堆和托管堆。这里我们需要简单回顾一下。 以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。 在运行库的控制下执行的代码称作托管代码。相反,在运行库之外运行的代码称作非
阅读全文
摘要:一:什么是弱引用 了解弱引用之前,先了解一下什么是强引用 例如 : Object obj=new Object(); 就是一个强引用,内存分配一份空间给用以存储Object数据,这块内存有一个首地址,也就是obj所保存的数据,内存分配的空间中不仅仅保存着Object对象信息,还保存着自己(Objec
阅读全文
摘要:C#和C/C++一样,也支持预处理指令,下面我们来看看C#中的预处理指令。 #region 代码折叠功能,配合#endregion使用,如下: 点击后如下: 条件预处理 条件预处理可以根据给出的条件决定最终进行编译的代码,换句话说可以排除掉指定的代码不进行编译。 #define 定义一个宏,注意只要
阅读全文
摘要:最近开始学习Unity开发,由于以前一直都是从事C/C++开发,所以对于Unity的脚本语言方面,选择了最相近的C#。由于从头开始学习C#是没有必要的,所以就恶补了一下必须的C#知识^-^1.C#中使用//(双斜杠)来表明本行的剩余部分代表注释。2.C#中语句是按顺序执行的,每条语句以分号结尾。3.C#中的函数执行一系列语句的行为,称为语句块---一对大括号中包含0条或多条语句。4.一个函数可以通过定义参数来从调用者处接受输入数据,也可以通过定义返回类型来输出数据给调用者。5.Main函数定义为执行程序的默认入口点。Main函数可以不返回任何值,也可以返回一个整数给执行程序环境。Main函数也
阅读全文
摘要:转向.NET后,手头上往往仍有旧的模块要重用。也许这些模块是Delphi写的,也许是C/C++写的,或者是其它编程语言……为了能把它们移植到.NET下,或者是在.NET中调用,To be or not to be, that is a question。 在这里,我笔记了几个在工作中遇到的几个场景。不过,这里不包括完全使用C#来重写原来用C++编写的程序这种变态的需求。当你被要求做这种事的时候,请三思而后行……这简直是种非人的折磨。您也使用托管C++吗? 如沐枫林 场景一:在.NET中调用WindowsAPI或DLL。 这是比较普遍的需求。一般来说,简单的函数调用,大可直接用C#/VB
阅读全文
摘要:ZedGraph使用2008年04月24日 星期四 11:42 A.M.工作中需要画统计表,没有头绪,网上找到这个,不错。gridview结合Zedgraph使用用法http://www.cnblogs.com/levin9/articles/859476.htmlZedGraph类库介绍http://blog.csdn.net/tjvictor/category/257827.aspx介绍和简单的操作手册:http://www.codeproject.com/csharp/zedgraph.asp代码例子:http://zedgraph.org/wiki/index.php?title=Sa
阅读全文
摘要:1.可以将 Windows 窗体 SplitContainer 控件看作是一个复合体,它是由一个可移动的拆分条分隔的两个面板。当鼠标指针悬停在该拆分条上时,指针将相应地改变形状以显示该拆分条是可移动的。使用 SplitContainer 控件,可以创建复合的用户界面(通常,在一个面板中的选择决定了在另一个面板中显示哪些对象)。这种排列对于显示和浏览信息非常有用。拥有两个面板使您可以聚合不同区域中的...
阅读全文
摘要:using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Windows.Forms;using System.Drawing;namespace WindowsApplication2{ class ResizeAction { bool IsMoving = fa...
阅读全文
摘要:集合是OOP中的一个重要概念,C#中对集合的全面支持更是该语言的精华之一。 为什么要用泛型集合? 在C# 2.0之前,主要可以通过两种方式实现集合:a.使用ArrayList 直接将对象放入ArrayList,操作直观,但由于集合中的项是Object类型,因此每次使用都必须进行繁琐的类型转换。 b.使用自定义集合类 比较常见的做法是从CollectionBase抽象类继承一个自定义类,通过对IL...
阅读全文
摘要:先说区别,1,class 是引用类型,structs是值类型既然class是引用类型,class可以设为null。但是我们不能将struct设为null,因为它是值类型。 struct AStruct{int aField;}class AClass{int aField;}class MainClass{public static void Main(){AClass b = null; // ...
阅读全文
摘要:System.Xml命名空间下,XmlReader和XmlWriter类是用于读写xml文档的抽象类,它们使用流模型使用XmlReader类读XML文档,它提供对XML数据的快速、非缓存、只向前、只读的访问。1.XmlReader有3个子类:1)XmlTextReader:最快的 XmlReader 实现。它检查 XML 格式是否正确,但不支持验证。该读取器不能展开常规实体(dtd中的概念),不支...
阅读全文