C#
文章平均质量分 67
herryone123
这个作者很懒,什么都没留下…
展开
-
C# 创建文件(能够判断创建的文件是否被第三方程序占用)
利用C#编写软件时,如果用户新创建一个文件,然后对该文件读写不会有任何问题。如果用户想对已有的文件进行覆盖操作,如果该文件被其他第三方软件打开,将不能对该文件进行读写。本文设计以下文件创建方法,可以解决以上问题。 本文的设计思路如下所示:程序如下:bool fileExistFlag = false;//文件是否存在标志位fullPath = ...原创 2019-11-23 19:43:29 · 402 阅读 · 0 评论 -
C# 指针操作
以下总结C#指针操作的知识点一、unsafe的用法1、C#使用指针首先要用unsafe声明unsafe声明可以用在方法或代码块(1)方法声明为unsafe static unsafe void Main(string[] args) { int var = 20; int* p = &var...原创 2019-11-02 13:31:36 · 3600 阅读 · 0 评论 -
C# 匿名函数和Lambda表达式
一、匿名函数匿名函数不等于匿名方法,匿名函数包含了匿名方法和lambda表达式这两种概念。1、匿名方法(1)委托:委托是用于引用与其具有相同标签的方法。即可以使用委托对象调用可由委托引用的方法。(2)匿名方法(Anonymous methods)提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。在匿名方法中您不需要指定返回类型,它是从方法主体内的 r...转载 2019-11-03 16:20:44 · 2743 阅读 · 0 评论 -
C# 接口和抽象类
一、接口1、C#的接口可以实现多重继承的功能。接口的实现是通过类继承实现的,一个类虽然只能继承一个基类,但是可以继承任意多个接口。2、接口的语法格式:修饰符 interface 接口名称:继承的接口列表{ 接口内容;}3、接口的特征(1)接口类类似于抽象基类:继承接口的任何类型都必须实现接口的所有成员。(2)接口中不能包括构造函数,因此不能直接实例化接口。...原创 2019-10-13 15:18:51 · 1263 阅读 · 0 评论 -
C++和C# 结构体用法比较
一、C++结构体用法1、结构体:结构体用来存放若干不同类型(也可以是相同类型)的数据项。2、结构体类型的格式struct 结构体类型名{ 类型名 成员名;};如:struct Student{ int num; char name[20]; int age; float score; char addr[30];}...原创 2019-01-08 10:06:31 · 2314 阅读 · 1 评论 -
C#委托和事件(WPF实现关闭子窗口B时触发A窗口事件)
遇到一个问题,子窗口关闭时,主窗口如何知道子窗口关闭了,并执行相应的处理事件。为了解决这个问题查阅资料后可以用委托和事件来完成。一、委托1、委托: 委托是安全封装方法的类型,类似于 C 和 C++ 中的函数指针。 与 C 函数指针不同的是,委托是面向对象的、类型安全的和可靠的。假如委托没有引用一个有效的方法,就不允许调用这个委托。 委托是指向一个方...原创 2018-11-16 20:03:41 · 5455 阅读 · 0 评论 -
c# base和this的区别(base、this、virtual、override、static详解)
今天的程序调试中出现了以下错误,引发了我对base关键字的用法的疑惑,总结一下。1、base关键字用法1:base是为了实现子类的方法中实现父类原有的方法。this关键字代表本类对象,base关键字代表父类对象。 如:base.property;//调用父类的属性base.method();//调用父类的方法以下实例演示了派生类中调用用基类的方法,注意vi...原创 2018-11-14 13:26:39 · 965 阅读 · 0 评论 -
C#图形开发
一、基础知识1、图形设备上下文(1)句柄windows API是一个个C语言样式函数,应用程序通过一种叫做句柄的整数类型数据访问大部分的操作系统资源。例如,程序访问文件、网络资源,图片,创建窗体等都会事先调用API函数获得一个句柄,句柄可以理解成为系统资源的唯一编号。(2)图像上下文句柄 应用软件进行图形绘制操作前也得使用API函数申请一个图形设备上下文句柄,其后所有的图形操...原创 2019-01-02 13:05:49 · 3696 阅读 · 0 评论 -
WPF下多线程的使用方法
一、WPF的线程对于初学wpf的人来说,一般会把所有的程序都在一个线程中运行,当数据量较大,需要频繁刷新界面时,界面会出现卡顿的情况。 1、当我们打开一个WPF应用程序即开启了一个进程,该进程中都会加载两个重要的线程:一个用于呈现用户界面,另一个用于管理用户界面。呈现线程是一个在后台运行的隐藏线程,因此您通常面对的唯一线程 就是 UI线程。WPF 要求将其大多数对象与 UI 线程进行关联,...原创 2018-11-07 10:46:14 · 23451 阅读 · 16 评论 -
winform和wpf下分别使用zedgraph控件
一、基本概念ZedGraph是用于创建任意数据的二维线型、条型、饼型图表的一个类库,也可以作为Windows窗体用户控件和Asp.Net网页控件。这个类库具有高度的适应性,几乎所有式样的图表都能够被创建。这个类库的用法在于通过提供所有图表属性的省缺值来保持使用性的简单。这个类库包含了基于要绘制的数值范围内的可选择适当度量范围和跨度的代码。二、winform下使用zedgraph1、下载...原创 2018-10-22 10:07:04 · 3148 阅读 · 0 评论 -
C#学习( ref和out、堆和栈、枚举)
一、值类型和引用类型1、值类型直接存储其值(存储数据的实际值),而引用类型存储对其值的引用(存储的是它们数据的引用)。引用类型:基类为Objcet c# 中所有的类、结构体和接口类型都隐式的继承Object类值类型:均隐式派生自System.ValueType2、值和引用类型存储值类型变量声明后,不管是否已经赋值,编译器为其分配内存。 引用类型当声明一个类时,只在栈中...原创 2018-11-26 09:16:40 · 6219 阅读 · 0 评论 -
C#使用Math.Net库进行矩阵运算
一、基础知识1、Math.net是什么Math.net计算库是专为.NET开发的开源科学计算库。包含了大部分矩阵运算、线性运算等功能。效率高,且可以在C#中直接使用。简单的矩阵运算,其效率可以达到C#代码的10倍以上。开源地址:http://mathnetnumerics.codeplex.comMath.NETNumerics是核心功能是数值计算。主要是提供日常科学工程计...原创 2019-04-01 19:57:00 · 27847 阅读 · 11 评论 -
C# 使用Math.NET读取mat格式文件内容
一、前序知识1、mat格式Mat文件格式,实际上使用的是一种通用的数值数据存储格式Hierarchical Data Format(HDF),该格式最先是由美国国家超级计算应用中心开发的,后来由HDF非盈利组织资助。LabVIEW,MATLAB,Scilab,Octave,Mathematica等都支持该格式,该格式目前主要有HDF4和HDF5。2、Mat数据格式读写的组件是MathN...原创 2019-04-24 15:51:21 · 8753 阅读 · 10 评论 -
C# 常用字符串操作方式
一、字符串分割使用名称空间using System.Text.RegularExpressions;1、用字符串对字符串分割string str="aaajsbbbjsccc";string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);foreach (string i in sArray) Response...原创 2019-06-23 16:00:51 · 172 阅读 · 0 评论 -
C#异步编程
一、基础知识1、异步编程(1)同步方法:一个应用程序调用某个方法,等到其执行完成后才进行下一步操作。(2)异步方法:一个程序调用某个方法,在处理完成前就返回该方法。 同步和异步主要用于修饰方法。当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法;当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务,调用者不用等待该方...原创 2019-08-03 09:51:14 · 1467 阅读 · 0 评论 -
C#异步TCP编程
一、基本知识1、利用TcpListener类和TcpClient类在同步方式下接收、发送数据以及监听客户端连接时,在操作没有完成之前一直处于阻塞状态。2、异步设计模式:异步操作一般工作在一个单独的线程中执行,调用异步方法异步执行某个操作时,可以同时继续执行该异步方法的后面的代码。异步编程主要有两种模式:基于事件的异步设计模式、基于IAsyncResult的异步模式。(1)基于事件的...原创 2018-10-23 20:14:15 · 684 阅读 · 0 评论 -
C# 获取字符串转Hex格式和BCD格式
一、字符串转BCD格式1、设计要求上位机获取输入的年月日字符串,转换成BCD格式后传递到下位机。输入一串序列号,最小1位,年最大4位;月和日最小一位,最大两位。 2、设施步骤(1)获取字符串,判断字符串的长度是否符合要求。(2)判读字符串是否是十进制数。(3)字符串不满足要求位数,左边用0补齐。(4)字符串转成BCD3、程序代码 ...原创 2018-10-10 19:38:45 · 6996 阅读 · 0 评论 -
Winform下使用ListView控件和ImageList控件显示图片缩略图
一、基本概念1、ImageList控件ImageList组件,又称为图片存储组件,它主要用于存储图片资源,然后在控件上显示出来,这样就简化了对图片的管理。ImageList组件的主要属性是Images,它包含关联控件将要使用的图片。每个单独的图片可以通过其索引值或键值来访问。2、ListView控件参考:ListView用法 ListView控件,又称为列表视图控件,它主要...原创 2018-10-16 10:52:56 · 17440 阅读 · 2 评论 -
WPF下ToolBar控件的使用
效果一、颜色ToolBar1、XAML设置<ToolBar Margin="120,21,230,328"> <RadioButton ToolTip="Red" Click="ColorButton_Click"> <Rectangle Width="10" Height="原创 2018-09-14 22:32:00 · 8847 阅读 · 0 评论 -
C#调用C++dll文件的注意事项
一、基本概念1、c++是非托管代码,c#是非托管代码,c#调用c++需要把c++编译成dll文件后才能用。托管代码:由公共语言运行环境执行的代码。非托管代码:在公共语言环境的外部,由操作系统直接运行的代码。2、dll是动态库静态库与动态库的区别静态库:在程序的链接阶段被复制到了程序中,和程序运行时没有关系。动态库:在链接阶段没有被复制到程序中,而是在程序在运行时由系统动...原创 2018-09-25 14:39:55 · 759 阅读 · 0 评论 -
WPF下替换窗体左上角图标
1、找到要替换的素材图片,将其转换成 .ico格式的图片 ,转换可以通过以下网址在线转换http://www.faviconico.org/favicon2、转换后的 .ico图片复制到工程下vs下 - 工程名 - 右键 - 属性 - 应用程序 图标和清单下选择自己的 ico文件3、查看运行结果在debug 或 release 模式下直接启动,会看到图标和以...原创 2018-09-14 14:08:30 · 4562 阅读 · 0 评论 -
WPF下保存控件内容为图片
1、选取要绑定的控件名称2、设置保存图片的类型和格式、路径 //保存图片处理事件 private void Save_image_Click(object sender, RoutedEventArgs e) { string outputfile="";//文件保存路径声明 Syste...原创 2018-09-14 10:58:35 · 2438 阅读 · 1 评论 -
wpf下定时器中断的使用
一、前言WPF下使用定时器有两种,System.Windows.Threading.DispatcherTimer和System.Threading.Timer。这两种的主要区别是:DispatcherTimer是运行在UI线程上的,最大的好处是可以在定时事件中修改UI元素,Timer是运行在独立的线程上的,与UI线程无关,如果需要修改UI控件,则必须委托给调度器this.Dispat...原创 2018-09-12 20:34:21 · 2791 阅读 · 0 评论 -
WPF 使用DynamicDataDisplay 过程及获取x,y轴坐标
一、使用过程1、下载DynamicDataDisplay.dll文件,并引用到wpf工程中添加using Microsoft.Research.DynamicDataDisplay;using Microsoft.Research.DynamicDataDisplay.DataSources;2、 前端 <Window x:Class="testdanami...原创 2018-09-02 13:48:47 · 4275 阅读 · 6 评论 -
c# 使用Regex判断登录密码格式
1、简介https://msdn.microsoft.com/zh-cn/library/system.text.regularexpressions.regex(v=vs.110).aspx正则表达式类//Regex.IsMatch();//用来判断给定的字符串是否匹配某个正则表达式//Regex.Match();//用来从给定的字符串中按照正则表达式的要求提取【一个】匹配的字符...原创 2018-09-07 22:33:48 · 3386 阅读 · 0 评论 -
ADO.NET 数据访问技术
一、数据库访问1、数据库连接 为了让连接对象知道将要访问的数据库文件在哪里,用户必须将这些信息用一个字符串连接,数据库连接字符串中需要提供必要信息包括服务器名、数据库名称和数据库的验证方式,另外可以指定其他的信息。 string connectionString= "Data Source=服务器地址;Initial Catalog=数据库名;User Id=用...原创 2018-09-07 22:09:24 · 1885 阅读 · 0 评论 -
c# TCP编程深入篇
一、TCP1、TCP:有同步方式和异步工作方式。(1)同步工作方式:利用TCP编写的程序执行发送、接收或监听语句时,未完成工作前不再继续往下执行,即处于阻塞状态,直到该语句完成相应的工作后才继续执行下一条语句;异步工作方式是指程序执行到发送、接收或监听语句时,不论工作是否完成,都会继续往下执行。如在接收数据时,同步方式下接收方执行到接收语句后将处于阻塞方式,只有接收到对方发来的数据后才...原创 2018-10-01 09:54:24 · 1453 阅读 · 1 评论 -
C#数据流
一、前言1、C# 通过数据流来执行I/O操作。I/O数据流技术包括:文件操作、文件夹操作(目录操作)、I/O流 文件操作:使用File类、FileInto类 实现对文件的基本操作,如判断是否存在 、创建、移动、复制、删除、获取信息等。文件夹操作:使用Directory类、DirectoryInfo类实现对文件夹的操作、如判断是否存在、创建、移动、删除、遍历等。I/O操...原创 2018-10-05 10:13:16 · 1935 阅读 · 0 评论 -
c#学习笔记(进程和线程)
一个C#程序起始于一个由】C【】LR与操作系统创建的一个单线程,并且可以通过创建其他的线程来实现多线程编程。一、基本概念1、进程:进程是系统资源分配和资源调度的基本单位,每个独立执行的程序在系统中都是一个进程。如qq、word都是一个进程。2、线程:线程是进程中的执行流程,一个进程中可以包含多个线程,每个线程也可以得到一个小段程序的执行时间。3、线程调度: ...原创 2018-09-29 20:48:02 · 641 阅读 · 1 评论 -
winform下PictureBox控件的SizeMode 属性区别
在同一个PictureBox控件下分别设置PictureBox控件的SizeMode 属性的五个不同属性显示这张图片1、SizeMode.Normal 模式图片置于 PictureBox 的左上角,而图片过大使得 PictureBox 只能显示左上角一部分。放大之后可以查看浏览全图。2、SizeMode.StretchImage会使图像拉伸或收缩,以便适合 Pict...原创 2018-10-14 21:08:41 · 5727 阅读 · 0 评论 -
Winform下调用百度地图
百度开发指南:http://lbsyun.baidu.com/index.php?title=jspopular一、申请密钥如上图所示:使用百度地图的API首先要申请一个密钥,应用名称随便填写,应用类型选择浏览器,白名单填写符号 * ,之后提交后会获得一个密钥。二、新建winform工程1、新建一个winform工程2、在winform下添加一个HTML页面解决方案...原创 2018-11-12 15:42:07 · 4272 阅读 · 2 评论 -
c# 单精度与字节类型相互转换
一、单精度转字节类型 //获取数据 float tem_coef =0; tem_coef = Convert.ToSingle(Tem_trans_coeffic_set1.Text);//单精度转字节 byte[] tem_data = new byte[4];//存放单精度转换为四字节的数组 tem_data = BitConverter.GetBytes(tem_coe...原创 2018-10-12 19:04:11 · 3180 阅读 · 0 评论 -
C#数字图像处理的三种方法
C#数字图像处理主要用到Bitmap类、BitmapData类和Graphics类。1、彩色图像的灰度化(1)彩色图彩色图像,每个像素通常是由红(R)、绿(G)、蓝(B)三个分量来表示的,分量介于(0,255)。M、N分别表示图像的行列数,三个M x N的二维矩阵分别表示各个像素的R、G、B三个颜色分量。RGB图像的数据类型一般为8位无符号整形,通常用于表示和存放真彩色图像,当然...原创 2018-10-09 17:49:09 · 3154 阅读 · 0 评论 -
c# TCP程序设计
一、网络协议1、TCP协议(1)TCP:传输控制协议(2)是一种固定连接为基础的协议,可以提供两台计算机间的可靠数据传输。(3)TCP可以保证从一端将数据传送至另一端,数据能够实时的送达,而且送达的数据排列顺序和送出时的顺序相同。(4)面向连接的、可靠的、基于字节流的传输通信协议。TCP通信就像两个人电话通话,必须先播对方电话,等双方接通后,才能对话,是点对点的连接。...原创 2018-09-30 20:01:43 · 5656 阅读 · 1 评论 -
WPF MessageBox简单用法
1、弹出小框用法:if (MessageBox.Show("内容", "标题", MessageBoxButton.YesNo, MessageBoxImage.Information) == MessageBoxResult.Yes){label1.Content = "yes";}else{label1.Content = "no";}2、例子 if (MessageBox.Show("是否进...原创 2018-05-02 16:34:03 · 15010 阅读 · 0 评论