![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
文章平均质量分 54
人狮子
图像处理、模式识别研究生,目前专注于视觉算法方面的工作。
展开
-
C# 并行运算方法简析
一、概述首先应该明白并行和并发的区别。并发就是有多个几乎同时到达的线程需要被处理,但只有有限个CPU,所以需要竞争上岗。并行指有多个CPU资源同时处理多个线程,不存在竞争的概念,可以大量节省运行时间。二、实现方法C#中目前有Tasks命名空间中的Parallel类来完成并行开发。2.1 ParallelParallel类有三个常见的方法:Invoke,For,Foreach,都可以实现多个方法的并行计算。For和ForEach方法多次调用同一个方法, Invoke可以同时调用不同的方法。2.原创 2021-09-15 23:13:26 · 1201 阅读 · 0 评论 -
C#窗体应用程序崩溃解决方法总结
一、内存不足内存是最常见的导致程序崩毁的原因,常用解决方式有如下几种。算法中声明的占内存较大的全局变量或类中声明的私有变量在循环或运行结束后需进行释放,手动设置Dispose(),然后GC.Collect()。对一些重复调用的类避免多次实例化。对于高并发程序,需要结合线程处理方法进行解决。二、未知原因崩溃对于此类情况,可以添加未处理异常的事件。static void Main(string[] args) { AppDomain.CurrentDomai原创 2021-08-26 20:49:17 · 4558 阅读 · 0 评论 -
C#中泛型的相关知识点总结
概念泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。将类型参数化以达到代码复用提高软件开发工作效率的一种数据类型。优点:1.使用泛型类、方法,我们可以极大提高代码的重用性,不需要对类型不同代码相同(仅类型参数不同)的代码写多次。2.创建泛型类,可在编译时创建类型安全的集合3.避免装箱和拆箱操作降低性能,在大型集合中装箱和拆箱的影响非常大.常见的泛型类型包括例子小知原创 2021-08-22 22:20:45 · 169 阅读 · 1 评论 -
基于C#的ico图标制作与应用
一、简介ICO是什么ICO 是 Windows 开发的一种图标格式,是一种可以存储多张图案、多尺寸、多色板的图标文件。原创 2021-06-21 10:07:49 · 2648 阅读 · 1 评论 -
C#中HP-Socket通信组件详解
概念原创 2021-05-23 23:54:13 · 4812 阅读 · 2 评论 -
C#中不常见的运算符功能汇总
介绍?可空类型修饰符引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。?.NULL检查运算符,用于判断对象是否为空并获取对象的某个属性的值,可以代替if判断,简化代码。?:三元运算符,a?b:c 表示如果表达式a为true,则返回b,否则返回c。这是省略if{}else{}的简单形式。??空合并运算符,用于定义可空类型和引用类型的默认值。如果此运算符的左操作数不为null,则此运算符将返回左操作数,否则返回右操作数。例如:a??b 当a为null时则返回b,否则返回a本原创 2021-05-12 23:20:47 · 151 阅读 · 1 评论 -
C#常见编码方式总结
概念UnicodeUnicode 是一种标准的编码系统,用于表示几乎所有语言的字符。 每个字符使用 0 和 0x10FFFF 之间的唯一整数 码位 进行编码。 Unicode 字符串 是由零个或更多码位组成的序列。编码是一个将一组 Unicode 字符转换为一个字节序列的过程。解码是一个反向操作过程,即将一个编码字节序列转换为一组 Unicode 字符。UTF-8,它将每个码位表示为一个由 1 至 4 个字节组成的序列。UTF-16,它将每个码位表示为一个由 1 至 2 个 16 位整数组成的序列原创 2021-05-02 19:29:06 · 2889 阅读 · 1 评论 -
C#中数据流(文件流、内存流、网络流等)相关知识点梳理
基本概念C#中数据流的应用体现在方方面面,现在针其常用的几种类进行一次梳理。数据流一般包括FileStreamFileStream类主要用于读写磁盘文件。在这里插入代码片NetWorkStreamNetWorkStream类是专门用来处理服务器与客户端通信的流。它在网络编程中经常使用,主要是用来处理类似Socket、TcpClient和TcpListener这些类中得到的流。MemoryStreamMemoryStream类主要用于操作内存中的数据。比如说网络中传输数据时可以用流的形式,原创 2021-05-01 20:49:42 · 1690 阅读 · 1 评论 -
C#中json序列化与反序列化
json格式概念JSON(JavaScript Object Notation) 是一种轻量级的数据传输格式,其采用完全独立于语言的文本格式,使JSON成为理想的数据交换语言。json由两种格式组成。1.名称/值”对的集合,可以一起创建多个"名称 / 值对"。{ “firstName”: “1”, “lastName”:“1”, “qq”: “1234567” }2.值的有序列表,一般被理解为数组(array)。当需要表示一组值时,只需将多个带花括号的记录分组在一起。{ “num”: [{ “原创 2021-04-25 20:20:00 · 755 阅读 · 2 评论 -
C#中数据类型及其转换知识点汇总
概念C#中数据类型分为两大类,分别是值类型和引用类型。值类型变量是从类 System.ValueType 中派生出来的,当声明一个值类型变量时,系统分配内存来存储值。整形浮点型float占用4字节,32bit:1bit(符号位) 8bits(指数位) 23bits(尾数位)。初始化时,应使用后缀 f 或 F 初始化浮点型变量,否则会使double值存储到 float 变量中。loat和double的精度是由尾数的位数来决定的,float:2^23 = 8388608,共七位。参考文章:C原创 2021-03-31 19:13:22 · 174 阅读 · 1 评论 -
C# —— 序列化与反序列化
概念原创 2021-03-29 18:29:43 · 1522 阅读 · 3 评论 -
C#中List列表与Datagridview的用法
初始化创建空列表 List<int> List = new List<int>();2.使用var类型的前提是预先知道变量的类型,会根据变量赋值来判定属于什么类型,但此种赋值方法只能给局部变量赋值。var list1 = new List<string>();具体见:C#列表List常用属性和方法...原创 2021-03-17 18:53:59 · 2873 阅读 · 1 评论 -
基于C#的TCP/IP协议应用(一)
一、背景与概念1.标准以太网以太网是美国Xerox(施乐)公司的Palo Alto研究中心于1975年研制成功的,其核心技术起源于ALOHA网。目前以太网是指符合IEEE 802.3标准的局域网(LAN)产品组,其中IEEE 802.3是一组电气与电子工程师协会(IEEE)标准,用于定义有线以太网媒体访问控制的物理层和数据链路层,说明了配置以太网网络的规则,以及各种网络元件如何彼此协作。以太网分为标准以太网:早期的10Mbps以太网称之为标准以太网,是一种总线型局域网,由同轴电缆、网卡(网络适配器)组成原创 2021-03-14 10:33:47 · 3631 阅读 · 1 评论 -
C#中Console.ReadKey()与ConsoleKey的一些用法
1.控制台程序不让窗口闪过对于控制台程序,Console.ReadKey()可以使窗口停留一下,直到点击键盘任一键为止。2.通过按键进行选择key = Console.ReadKey(true).Key; if (key == ConsoleKey.S) { Console.Write("Input the message: ");原创 2021-03-12 08:32:18 · 4563 阅读 · 1 评论 -
C# 接口详解
概念找到非常好的一个文章,见下面链接:C# 接口《通俗解释》原创 2021-03-10 18:42:14 · 375 阅读 · 1 评论 -
C# 回调函数详解
回调和回调函数是什么软件模块之间总是存在着一定的接口,回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口。对于一般的结构化语言,可以通过回调函数来实现回调。回调函数是一个函数或过程,是一个由调用方自己实现,供被调用方使用的函数。对于C和C++来说,一般通过函数指针实现调用。对于C#来讲,声明的委托事件就像一个指针,通过事件变量来调用另外的方法,将该方法作为参数传递给另一个方法。回调函数是一个工作流的一部分,由工作流来决定函数的调用(回调)时机怎么实现?通过声明委托来实现回原创 2021-03-10 18:39:02 · 17353 阅读 · 7 评论 -
C# —— 进程与线程的理解
定义进程:进程是资源(CPU、内存等)分配的基本单位,具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程:线程是进程的一个实体,是独立运行和独立调度的基本单位(CPU上真正运行的是线程)。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。区别进程拥有自己的资源空间,每启动一个进程,系统就会为它分配地址空间;而线程与CPU资源分配无关,多个线程原创 2021-02-23 20:00:52 · 2740 阅读 · 3 评论 -
C# 事件详解附实例分析
一、定义事件是两个对象间发布消息和响应后处理消息的过程,通过委托类型来实现的。事件的机制被称为发布-订阅机制,其算法过程为:首先定义一个委托类型,然后在发布者类中声明一个event事件,同时此类中还有一个用来触发事件的的方法。声明订阅者类,其中定义一个被调用方法,再定义一个可以增加,删除被调用方法的方法。最后在主函数中完成对方法的调用。二、示例举个简单的例子,我委托女朋友给我买东西,那我需要定义一个发布者类Me和一个订阅者类Girlfriend。public class Me//发布者是我啦原创 2020-12-23 16:54:02 · 2062 阅读 · 1 评论 -
C# —— 深入理解委托类型
一. 我自己的理解原创 2020-12-10 20:09:03 · 1922 阅读 · 3 评论 -
C# —— 简单工厂设计模式详述
一、基本概念众所周知,C#是一种面向对象的语言,而其中封装,继承,多态是面向对象的三大重要特征,简单工厂的设计模式则可以完全体现这些特征。要彻底理解这个模式,必须要先将封装(访问修饰符的应用)、继承(基类和派生类的概念)、多态(重载,虚方法,重写,抽象方法的概念)全部搞懂,并能灵活运用。1.简单工厂模式定义简单工厂模式简单来说就是创建一个工厂类,通过输入的参数创建对象赋值给基类,完成对想要的派生类的调用,从而达成目标,具体的操作均在子类中完成,工厂类只负责运算逻辑和给基类赋值。该模式有三部分:1、工原创 2020-11-09 18:44:11 · 3158 阅读 · 10 评论