C#
吴安
大漠孤烟直,长河落日圆。 C++ C# Halcon openCV
展开
-
C#协变
namespace 协变{ public class Animal { public string name; public Animal(string name1) { name = name1; } } public class dog : Animal {...原创 2020-05-03 21:06:43 · 344 阅读 · 0 评论 -
c#内存管理
在.net中内存资源可以分为托管资源和非托管资源。托管资源受CLR的管理,非托管资源则不受。1、托管资源托管资源分别存放在“栈”和“托管堆”。“值类型的实例作为局部变量时”和“引用类型的实例的引用”会存放在栈上。“值类型的实例作为类的成员时”和“引用类型的实例”会存放在堆上。当作为方法的参数时,值类型的变量直接拷贝一份, 引用类型拷贝一个指向同一对象的引用副本。...转载 2019-10-27 23:07:59 · 375 阅读 · 0 评论 -
c# mutex
c# mutex参考地址:http://blog.sina.com.cn/s/blog_68e4d2910100q6uj.html什么是Mutex “mutex”是术语“互相排斥(mutually exclusive)”的简写形式,也就是互斥量。互斥量跟临界区中提到的Monitor很相似,只有拥有互斥对象的线程才具有访问资源的权限,由于互斥对象只有一个,因此就决定了任何情况下此...转载 2019-10-22 14:47:58 · 2368 阅读 · 0 评论 -
await
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp2{ using System; using System.Collections.Generic; ...原创 2019-10-20 15:53:32 · 310 阅读 · 0 评论 -
C# task 取消
1、需求 我们知道task是并行计算的,比如说主线程在某个时刻由于某种原因要取消某个task的执行,我们能做到吗? 当然我们可以做到。 在4.0中给我们提供一个“取消标记”叫做CancellationTokenSource.Token,在创建task的时候传入此参数,就可以将主线程和任务相关联,然后在任务中设置“取消信号“叫做ThrowIfCancellationRequested来等待主线...转载 2018-12-24 10:27:46 · 12567 阅读 · 0 评论 -
C# 索引器 扩展方法 new使用
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace new_csharp{ /*public class BaseC{ public int x; public vo...原创 2018-10-16 16:23:29 · 572 阅读 · 0 评论 -
C#索引器(类似C++ []运算符重载)
说索引器之前先来了解一下属性:它提供灵活的机制来读取、编写或计算某个私有字段的值。 可以像使用公共数据成员一样使用属性,但实际上它们是称作“访问器”的特殊方法。 这使得可以轻松访问数据,此外还有助于提高方法的安全性和灵活性。 class Program { static void Main(string[] args) { ...转载 2018-10-16 14:38:09 · 981 阅读 · 0 评论 -
跨线程直接更新UI控件汇总
C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件的线程访问它”的异常。处理跨线程更新Winform UI控件常用的方法有4种:1. 通过UI线程的SynchronizationContext的Post/Send方法更新;2. 通过UI控件的Invoke/BeginInvoke方法更新;3. 通过BackgroundWorker取代T...转载 2018-10-14 22:43:17 · 363 阅读 · 0 评论 -
c#如何处理自定义消息
随笔- 1124 文章- 52 评论- 83 c#如何处理自定义消息C#自定义消息通信往往采用事件驱动的方式实现,但有时候我们不得不采用操作系统的消息通信机制,例如在和底层语言开发的DLL交互时,是比较方便的。下面列举了一些实现方式,以供参考。有关C#中的消息机制,请参考文章C# 消息处理机制及自定义过滤方式。 一、通过SendMessage或postmessage函数发送...转载 2018-10-14 19:02:16 · 766 阅读 · 0 评论 -
C# 消息处理机制及自定义过滤方式
一、消息概述 Windows 下应用程序的执行是通过消息驱动的。消息是整个应用程序的工作引擎,我们需要理解掌握我们使用的编程语言是如何封装消息的原理。1. 什么是消息(Message) 消息就是通知和命令。在.NET框架类库中的System.Windows.Forms命名空间中微软采用面对对象的方式重新定义了Message。新的消息(Message)结构的公共部分属性基本与早期的一样,不过它是...转载 2018-10-14 18:54:37 · 306 阅读 · 0 评论 -
C#贪心算法
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections.Generic;namespace ConsoleApplication3{ public class ActiveTime { sta...原创 2018-09-25 17:49:28 · 1364 阅读 · 0 评论 -
c#中的值类型和引用类型 装箱拆箱 (好文)
一,c#中的值类型和引用类型 众所周知在c#中有两种基本类型,它们分别是值类型和引用类型;而每种类型都可以细分为如下类型: 什么是值类型和引用类型 什么是值类型: 进一步研究文档,你会发现所有的结构都是抽象类型System.ValueType的直接派生类,而System.ValueType本身又是直接从System.Object派生的。根据定义所知,所有的值...转载 2018-08-21 10:23:03 · 3545 阅读 · 18 评论 -
c# 序列化和反序列化 深拷贝
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Runtime.Serialization.Formatters.Binary;using System.IO;using System...原创 2018-10-17 00:31:08 · 764 阅读 · 0 评论 -
C# 正则表达式 元字符
C# 正则表达式 元字符 1 . 除了\n以外的任意单个字符符合规则如下:如 a.b下列符合条件a. baaba3b 2 [] 字符组: 表示在字符组中罗列出的字符任意一个。任意取字符组中的一个。-出现在第一位只表示字符- ;a-z - 表示a到z的符号如 a[xyz]b下列符合条件axbaybazb如a[a-z]b下列符合条件azbaxbaab如a[a-...原创 2018-10-17 17:14:07 · 343 阅读 · 0 评论 -
C# beginInvoke
摘要异步这东西,真正用起来的时候,发现事情还是挺多的,最近在项目中用到了异步的知识,发现对它还是不了解,处理起来,走了不少弯路。觉得还是补一补还是很有必要的。MSDN原文地址:https://msdn.microsoft.com/en-us/library/2e08f6yc(v=vs.110).aspx正文.Net framework可以让你异步调用任何方法。为达这样的目的,你可以...转载 2018-12-23 08:59:33 · 8098 阅读 · 0 评论 -
委托本质
前言 委托和事件是c#基础中两个重要的知识,平时工作中也会经常用到。接下来我会写两篇我对委托和事件的理解,欢迎拍砖。 回调函数是一种非常有用的编程机制,许多语言都对它提供了支持。回调函数是一个通过函数指针调用的函数。通常,我们会把回调函数作为参数传递给另一个函数,当某些事件发生或满足某些条件时,由调用者执行回调函数用于对该事件或条件进行响应。简单来说,实现回调函数有如下步骤: 1...转载 2018-12-23 10:01:42 · 496 阅读 · 0 评论 -
c# 特性
特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集、类型、方法、属性等)相关联。特性与程序实体关联后,即可在运行时使用名为“反射”的技术查询特性。这篇文章绝大部分是按照MSDN来学习的,只是加了一点点自己的东东,官方介绍的很详细,我们就一起来了解一下它的用法。特性具有以下属性: 特性可向程序中添加元数据。元数据是有关在程序中定义的类型的信息。所有的 .NET 程序集都包含...转载 2018-12-30 09:09:11 · 594 阅读 · 0 评论 -
C#中使用指针
C#为了类型安全,默认并不支持指针。但是也并不是说C#不支持指针,我们可以使用unsafe关键词,开启不安全代码(unsafe code)开发模式。在不安全模式下,我们可以直接操作内存,这样就可以使用指针了。在不安全模式下,CLR并不检测unsafe代码的安全,而是直接执行代码。unsafe代码的安全需要开发人员自行检测。一、Vs2010中开启unsafe code 的方式在方法、类、代码...转载 2018-12-30 12:01:52 · 1158 阅读 · 0 评论 -
C# 指针操作图像
原文地址:https://www.cnblogs.com/lixunwu/articles/6692007.html读取图片时,请参考bolg文章:C#图片的像素格式问题研究 (http://www.cnblogs.com/lixunwu/articles/6691962.html) private unsafe void ProcessFilter(Bitmap imageT) ...转载 2018-12-30 13:16:18 · 2017 阅读 · 0 评论 -
C#和c++互转
https://blog.csdn.net/u011430225/article/details/78675163 下载地址:看起来微软自己也是深受.NET蹩脚的P/Invoke支持的毒害,因此无奈之余发布了P/Invoke Interop Assistant工具,你可以去下面这个链接来下载这个工具:http://download.microsoft.com/download/f/...原创 2019-01-02 20:30:03 · 713 阅读 · 0 评论 -
bmp数据格式
先区分几个概念:16色和16位色一样吗?不一样!颜色位数,即是用多少位字节表示的值,每一位可以表示0和1两值。通常图片的颜色深度,简称色深,就是用位数来表示的,所以,我通常会看到8位色,16位色,24位色和32位色。而我们在其它地方看到的又是16色,256色,16777216色等等,这些怎么一回事呢? 16色即代表16种颜色,256色即256种颜色,8位色就是用8个位来表示的颜色,即2...转载 2019-01-24 15:13:08 · 1068 阅读 · 1 评论 -
c# 托管对象与InPtr互转
//托管对象转interPtrGCHandle thisHandle = GCHandle.Alloc(this);nGCHandle.ToIntPtr(thisHandle);//interPtr转非托管对象GCHandle gcUser = GCHandle.FromIntPtr(pUser);HikVisionCamera CamObj = (HikVisionCa...转载 2018-08-20 18:32:52 · 1313 阅读 · 0 评论 -
C# 之attribute
C# attribute 是不同于属性的, 我们自己写的attribute 姑且叫UserAttribute 继承于attribute 他的作用是什么。他只是做个标记,对类 属性做个标记。一个类或属性 或方法 可以有多个标记。 标记的目的是为了给别人使用时候,识别。从而做成相应的动作。貌似也实现了多态。使用方法 :1) 获得 Type --> GetType2) 获得Mo...原创 2018-08-08 16:50:30 · 179 阅读 · 0 评论 -
C# begininvoke (control)
namespace WindowsFormsApplication1{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void showMsg(string str)...原创 2018-08-11 17:12:59 · 891 阅读 · 0 评论 -
C#之11 字符串的不可变性 -----值类型与引用类型
请看下面代码namespace ConsoleApplication1{ class Program { static void Main(string[] args) { string sr1 = "张三"; sr1 = "王五"; string sr2 = sr1;原创 2017-07-05 13:15:41 · 335 阅读 · 0 评论 -
C# 学习之4数组
什么是数组?数组是一种数据结构,包含同一个类型的多个元素。数组的声明:int[] myIntArray; 注:声明数组时,方括号 ([]) 必须跟在类型后面,而不是变量名后面。在 C# 中,将方括号放在变量名后是不合法的语法。数组的初始化:我们知道数组是引用类型,所以需要给他分配堆上的内存。1.myIntArray = new int[3];2.myIntArray转载 2017-06-11 00:32:02 · 294 阅读 · 0 评论 -
c# 之学习之10 内存释放
namespace ConsoleApplication3{ public enum qqState { qqonline, qqoffline, qqme, qqbusy, } public struct Person { public string _name;原创 2017-07-02 17:46:38 · 406 阅读 · 0 评论 -
c# 之学习9 params 可变参数
namespace ConsoleApplication3{ public enum qqState { qqonline, qqoffline, qqme, qqbusy, } public struct Person { public string _name;原创 2017-07-02 16:08:36 · 234 阅读 · 0 评论 -
c# 学习之8 枚举类型和int string的转换
namespace ConsoleApplication3{ public enum qqState { qqonline, qqoffline, qqme, qqbusy, } class Program { static void Main(string[] args)原创 2017-07-02 14:55:29 · 392 阅读 · 0 评论 -
C#之学习7 类型转换
C# 的内存转换 1 隐士类型转换 小转到大 2 显示类型转换 大转到小 3 convert 转换 字符与数字互转 转钱 日期。但是面上要过的去,不然会出现异常。原创 2017-07-01 22:06:29 · 247 阅读 · 0 评论 -
C# 学习之5C++ /C/C# static
static 是由最初的限制和持久过渡到后的共享。C语言时代的static 在C语言中,只存在函数和变量。 A、函数和全局变量,一旦加上static关键字,就限制了其作用域为本文件有效。 B、局部变量,一旦加上static关键字,其生命其为整个应用程序。C++语言时代的static 在C++语言中,除了转载 2017-06-11 11:23:12 · 472 阅读 · 0 评论 -
C# 学习之1
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using MyNamespace;namespace MyNamespace{ class firstclass { public原创 2017-03-17 11:05:42 · 484 阅读 · 0 评论 -
c# 之 3(string)
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication_str{ class Program { static void M原创 2017-03-28 17:48:27 · 284 阅读 · 0 评论 -
C#学习之6 接口
C#中的接口提供了一种实现运行时的多态。通过接口可以使用相同接口的引用来访问实现相同接口的不同类的方法,其实是使用虚方法通过相同的引用调用相同基础的不同的类。在开始前先使用简单的短类例子来解释接口的概念,下面的简短的例子显示接口的样子。P1.cs 程序代码:1 class Demo {2 public static void Main() {3转载 2017-06-26 17:07:42 · 316 阅读 · 0 评论 -
C#接口与继承的区别
类定义新的数据类型以及这些新的数据类型进行相互操作的方法定义方式: class Cat { } class Cat:object { }C#中所有的类都是默认由object类派生来的,显示指定或者省略效果是一样的,所以上面的两个例子是完全相同的。C#中类包括:抽象类、密封类、非抽象类abstract:表示修饰的类不完整,也就是抽象类,转载 2017-06-26 17:19:40 · 3233 阅读 · 1 评论 -
C# 学习新建一个自己的button
using System;using System.Collections.Generic;using System.ComponentModel;using System.Diagnostics;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;...转载 2018-04-08 14:07:29 · 2582 阅读 · 0 评论 -
C# Invoke和BeginInvoke(1)
近日,被Control的Invoke和BeginInvoke搞的头大,就查了些相关的资料,整理如下。感谢这篇文章对我的理解Invoke和BeginInvoke的真正含义 。(一)Control的Invoke和BeginInvoke我们要基于以下认识:(1)Control的Invoke和BeginInvoke与Delegate的Invoke和BeginInvoke是不同的。(2)Contr...转载 2018-08-11 17:03:21 · 4240 阅读 · 0 评论 -
C# GDI+双缓冲技术
http://blog.sina.com.cn/s/blog_4e7453df0100d2fy.html (2009-04-11 23:17:23)转载▼ 标签: 休闲分类: CSharp GDI+的双缓冲问题 我想有很多搞图形方面的朋...转载 2018-05-18 16:55:15 · 2297 阅读 · 0 评论 -
C# 接口Interface
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Class_override{ public interface Ins { void fryable(); ...原创 2018-04-12 00:00:43 · 235 阅读 · 0 评论 -
C# xml 操作
来了解下操作XML所涉及到的几个类及之间的关系 如果大家发现少写了一些常用的方法,麻烦在评论中指出,我一定会补上的!谢谢大家 * 1 XMLElement 主要是针对节点的一些属性进行操作 * 2 XMLDocument 主要是针对节点的CUID操作 * 3 XMLNode 为抽象类,做为以上两类的基类,提供一些操作节点的方法 清楚了以上的关系在...转载 2018-04-16 22:54:23 · 142 阅读 · 0 评论