C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。
文章浏览阅读130次。SharpZipLib(#ziplib,以前称为NZipLib)是一个完全用C#编写的用于Zip、GZip、BZip2和Tar的压缩库,适用于.NET。它被实现为一个程序集(可安装到GAC中),因此可以轻松地集成到其他项目中(任何.NET语言)。_sharpziplib
文章浏览阅读415次。Predicate表示定义一组条件并确定指定对象是否符合这些条件的方法。Comparison表示比较同一类型的两个对象的方法。本文主要介绍.NET Framework中自带的泛型委托Predicate和Comparison的使用。_.net predicate
文章浏览阅读798次。以应用程序的root为基础,遍历应用程序在Heap上动态分配的所有对象,通过识别它们是否被引用,来确定哪些对象是已经死亡的,哪些仍需要被使用。但你的代码中还是可以使用.NET Framework中GC的某些方法进行手动回收,前提是必须要深刻理解GC的回收原理,否则手动调用GC在特定场景下很容易干扰到GC的正常回收甚至引入不可预知的错误。:不能在析构函数中释放托管资源,因为析构函数是由垃圾回收器调用的,可能在析构函数调用之前,类包含的托管资源已经被回收了,从而导致无法预知的结果。与析构函数的区别主要是,_c# 析构函数和dispose
文章浏览阅读603次。Func是.NET Framework中自带的泛型委托,可以接收一个或多个输入参数,并且有返回值,和Action类似,.NET基类库也提供了多达16个输入参数的Func委托,输出参数只有1个。_.net常用的泛型委托
文章浏览阅读287次。从 .NET Framework 版本2.0 开始, AutoResetEvent 和ManualResetEvent 派生自 EventWaitHandle 类。在 ManualResetEvent 功能上等效于 EventWaitHandle 使用创建的EventResetMode.ManualReset。使用 EventResetMode.AutoReset 标志创建的 EventWaitHandle 会在释放单个等待线程后自动进行重置。_c#autoresetevent
文章浏览阅读173次。使用Nuget搜索sharpcompress,点击安装即可。1).zip文件压缩代码。2).zip文件解压代码。_sharpcompress 压缩
文章浏览阅读347次。委托(delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegate 类。事件是一种特殊的多播委托,仅可以从声明事件的类或结构中对其进行调用。类或对象可以通过事件向其他类或对象通知发生的相关事情。本文主要介绍C#中委托和事件的使用总结。
文章浏览阅读160次。泛型类提供一组键到一组值的映射。每次对字典的添加都包含一个值和与其关联的键。使用其键检索值的速度非常快,接近 O (1) ,因为。的内存占用的少,但是插入的删除的话数组要比树慢。树是O(log2N),数组是O(N)。该类是作为哈希表实现的。检索的速度取决于为指定的类型的哈希算法的质量。排序的键值对,且无重复。内部实现的差异却很大,需要使用比较器实现来执行键比较。,则此构造函数使用默认的泛型相等比较器。泛型接口,则默认比较器使用该实现。的内部实现是红黑二叉搜索树,而。的内部是两个数组,分别存储。_c# sorteddictionary
文章浏览阅读484次。让我们看看如何使用 C# 的工具环境类来编写 C# 程序,以使用环境类获取和打印命令行参数。了解了有关 C# 的所有知识后,我们现在将了解 C# 中 system.environment 类的用途之一,然后我们将学习编写一个获取并打印命令行参数的程序。基本上,它将接受字符串作为参数,并将其返回类型作为字符串。在深入了解该程序之前,我们必须详细了解什么是环境类,所以让我们学习一下。
文章浏览阅读940次。System.Timers.Timer类:定义一个System.Timers.Timer对象,然后绑定Elapsed事件,通过Start()方法来启动计时,通过Stop()方法或者Enable=false停止计时。Timer控件只有绑定了Tick事件和设置Enabled=True后才会自动计时,停止计时可以用Stop()方法控制,通过Stop()停止之后,如果想重新计时,可以用Start()方法来启动计时器。在上面所述的三种计时器中,第一种计时器和它所在的Form处于同一个线程,因此执行的效率不高;_c# timer控件
文章浏览阅读231次。NET Framework允许异步调用任何方法。定义与需要调用的方法具有相同签名的委托;公共语言运行库将自动为该委托定义具有适当签名的 BeginInvoke 和 EndInvoke 方法。以下介绍C#中,通过BeginInvoke()和EndInvoke()来实现异步。_wbegininvoke waitone();
文章浏览阅读1k次。单例模式,属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例。
文章浏览阅读358次。本文章主要介绍C#中对象的拷贝,其中包括浅拷贝和深拷贝,以及浅拷贝和深拷贝的实现方式,不同的实现方式之间的性能对比。_c# 对象复制
文章浏览阅读293次。信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量。一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。以下主要介绍C#中Semaphore 和 CountdownEvent 的使用。_countdownevent
文章浏览阅读1.5k次。设计模式六大原则是单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则。它们不是要我们刻板的遵守,而是根据实际需要灵活运用。只要对它们的遵守程度在一个合理的范围内,努为做到一个良好的设计。本文主要介绍一下.NET(C#) 迪米特法则。_c# 迪米特原则
文章浏览阅读437次。Linq是Language Integrated Query的简称,它是微软在.NET Framework 3.5里面新加入的特性,用以简化查询查询操作。以下主要介绍C#中Linq的AsEnumeralbe、DefaultEmpty和Empty操作符。
文章浏览阅读241次。record类型的实际是一个引用类型 ,但具备值类型的行为。重写了Equals等对象类型的比较方法,在两个不同引用的record对象的内容相同时,对两者进行==比较,判断两者相等为true。重写了ToString()方法,便于输出属性内容。还重写了和Equals()方法。1)定义record类型创建使用:用对象初始化器进行初始化,则在属性中使用init关键字,如下,init;init;注意:由于有set。_c# with
文章浏览阅读441次。多态是一种面向对象的机制(面向对象三大特性之一),它包括静态多态(函数重载)和动态多态(函数覆盖,或者成为动态绑定),通常是指动态多态,即程序在运行时,子类对象的行为(方法)可以覆盖父类对象的行为(方法)。而里氏代换原则(LSP)是一种面向对象设计原则,任何使用父类的地方都可以使用子类对象,使得我们可以针对父类编程,而运行时再确定使用哪个子类对象,从而提高系统的可扩展性和可维护性。在里氏代换原则中,实际上也使用了多态机制,子类对象在覆盖父类对象时,通过多态即可覆盖父类的行为。_c# 里氏替换原则
文章浏览阅读321次。从 .NET Framework 版本2.0 开始, ManualResetEvent 派生自 EventWaitHandle 类。在 ManualResetEvent 功能上等效于EventWaitHandle 使用创建的EventResetMode.ManualReset。ManualResetEventSlim用于实现更好的性能 ManualResetEvent。以下介绍.NET(C#)中ManualResetEvent 和 ManualResetEventSlim的使用总结。_c# manualreseteventslim set reset
文章浏览阅读113次。委托回调通过声明委托并将具体回调方法作为参数传递给其他类或方法,实现简单的回调任务,但耦合度相对较高,处理一种类型的回调。接口回调通过定义接口来规范回调方法,并允许类实现多个接口处理复杂的回调场景,降低耦合度,提供更大的灵活性和可扩展性,但代码可能较为复杂。接口使得多态编程变得容易,允许通过接口引用来引用实现该接口的不同类的实例,实现运行时多态性。实现接口的类必须提供接口中定义的所有成员的实现。接口可以继承其他接口,继承的接口会包含父接口的成员,并可以在实现时提供所有父接口和当前接口的成员实现。_.net 后端开发接口
文章浏览阅读376次。C#设计模式六大原则是单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则。它们不是要我们刻板的遵守,而是根据实际需要灵活运用。只要对它们的遵守程度在一个合理的范围内,努为做到一个良好的设计。以下介绍C#依赖倒置原则。_c# 依赖倒转原则
文章浏览阅读480次。链表中元素存储内存中是不连续分配,每个元素都有记录前后节点,节点值可以重复,不能通过下标访问,泛型的使用保证类型安全,可以避免装箱拆箱,找元素就只能遍历,查找不方便,增删比较快。是链表,先进先出,不能通过下标访问,泛型的使用保证类型安全,可以避免装箱拆箱,找元素就只能遍历,查找不方便,增删比较快。是链表,先进后出,不能通过下标访问,泛型的使用保证类型安全,可以避免装箱拆箱,找元素就只能遍历,查找不方便,增删比较快。线程安全版本的Queue。线程安全版本的Stack。_tlinkedlist
文章浏览阅读442次。可以看到我们定义了两个方法,想要确定目标点和X轴(水平距离)的夹角,就要确定多少个角(pointed),还有你的起始角的位置(startAngle,中心点之上的那个点),然后确定角度的增量就可以计算出所有的角度了!c#画一个五角星,最重要的就是计算哪些坐标点出来,也是最难的一部分,这要涉及到一些数学方面的知识.对数学坐标知识不是很熟的人,如果想学画图,我建议多去看一下数学书,对我们写程序的人来说是没有什么坏处可言的.其实上面的代码不只是可以画五角星,只要改一下六角,七角,八角,你喜欢的话一百角都行!_c# 五角星
文章浏览阅读519次。C#中声明方法或类时,可以不指定的类或方法的名字,也就是匿名类和匿名的方法。以下主要介绍C#中匿名类的声明及使用。_c# 匿名类
文章浏览阅读440次。使用线程池,可以通过向应用程序提供由系统管理的工作线程池,来更有效地使用线程。托管线程池中的线程是后台线程。其 IsBackground 属性为 true。线程池可以减少资源损耗。重用线程、控制线程数量,减少线程创建和切换所带来的开销。提高响应速度。可直接使用线程池中空闲的线程,而不必等待线程的创建。方便管理线程。以下主要介绍C#中 ThreadPool线程池的使用。_c# threadpool 排队
文章浏览阅读330次。4)通过控制台应用程序中传递参数获取输出结果。2)运行cmd命令隐藏控制台窗口。1)C#运行shell命令。3)运行cmd命令参数配置。通过Nuget安装Cli。_c#通过cmd启动exe
文章浏览阅读240次。单一职责原则简单来说就是一个类只负责一项职责,一个类只负责一个功能领域中的相应职责。也就是实现高内聚、低耦合。单一职责原则能使用代码阅读简单,易于维护;扩展升级,减少修改,直接增加类;
文章浏览阅读849次。设计模式六大原则是单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则。它们不是要我们刻板的遵守,而是根据实际需要灵活运用。只要对它们的遵守程度在一个合理的范围内,努为做到一个良好的设计。本文主要介绍一下.NET(C#) 接口隔离原则。
文章浏览阅读312次。本文主要介绍Newtonsoft.JSON(Json.NET)中,将一个对象的Json字符串反序化成两个不同的实体对象的方法代码。
文章浏览阅读780次。设计模式六大原则是单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则。它们不是要我们刻板的遵守,而是根据实际需要灵活运用。只要对它们的遵守程度在一个合理的范围内,努为做到一个良好的设计。本文主要介绍一下.NET(C#) 开闭原则。_c#开闭原则