
C#
高祥xiang
兴趣和努力伴随着我一直走下去,keep,Never give up!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
InvalidArgumentError: Each axis in Attr(axes) should be in the range of [0, -1]But current axis is:2
InvalidArgumentError: Each axis in Attr(axes) should be in the range of [0, -1]But current axis is:2原创 2023-01-03 17:46:31 · 1618 阅读 · 1 评论 -
C# Partial关键字
Partial关键词定义的类可以在多个地方被定义,最后编译的时候会被当作一个类来处理。首先看一段在C#中经常出现的代码,界面和后台分离,但是类名相同。public partial class Form1 : Form{ public Form1() { InitializeComponent(); }}其中用到了partial,我们打开Form1.Designer.cs文件,可以看到,原来Form1的另一部分类是在这个文件中设计的。这个部分类中转载 2021-09-03 10:46:55 · 508 阅读 · 0 评论 -
C# Base编码格式数据与图像之间互转
Base编码格式数据与图像之间互转,就是Base编码格式数据与 Bitmap 之间互转,这里直接上代码了。1、通过图像路径,加载本地图像到 Bitmap,再转为base64编码的字符串;//图片转为base64编码的字符串static public string ImgToBase64String(string Imagefilename){ try { Bitmap bmp = new Bitmap(Imagefilename); MemoryStream ms = new Me原创 2021-09-03 10:41:01 · 455 阅读 · 0 评论 -
C#调用C++ dll函数传参及参数类型转换
一、简述在C#中调用C++版的dll函数时,因为是不同的语言,参数类型也不尽相同,需要做一些转换。因为在网上能找到的答案也是很杂乱,对此不懂的人会搞到发狂。最近碰到一些项目需要在C#中调用C++版dll,所以一通捣鼓,总结了部分经验。【提示:C#调用C++库,需要dll和lib就可以了,不需要头文件】二、亲测有效的一些参数类型转换1、基本类型int、float、bool,C++中与C#中是相同的;(1)C++ dll 函数void init(int a, float b, bool原创 2021-08-31 14:33:08 · 2873 阅读 · 0 评论 -
基于.NET Core框架的项目发布技巧
1、用.NET Core框架比用.NET Framework框架性能更好,且可跨平台;2、基于.NET Core框架的项目中是没有exe运行文件的;3、如果想在windows平台打包运行,要打包出来(1)右击项目,点击“发布”(2)默认的“目标运行时”是“可移植”,需要点击“配置”,进入配置也选择windows平台,如果用默认的“可移植”,发布出来的依然是不包含exe运行文件的;(3)点击“发布”按钮即可,产生publish和win-x64两个目录,打...原创 2021-08-31 14:13:09 · 945 阅读 · 0 评论 -
C# 自定义控制台应用关闭函数处理
在 C# 中写一些服务应用,属于控制台。在使用时遇到一个问题:“我想要在应用关闭时运行一些自定义操作,但是试了很多方法也没有搞定”,最终只能对监听控制台关闭函数了。public partial class HttpTargetDetectionResults{ public delegate bool ControlCtrlDelegate(int CtrlType); [DllImport("kernel32.dll")] private stat原创 2021-08-28 18:03:47 · 898 阅读 · 0 评论 -
C# 读取txt文本数据
文本数据格式如下(每行每个数据之间用 \t 隔开):123 456 7489542.2 653.5 8933.5125 45 2读取文本每行、每列数据:private void loadTXT(string filePath){ StreamReader sr = new StreamReader(File.Open(filePath, FileMode.Open), E...原创 2021-08-28 17:48:00 · 7579 阅读 · 0 评论 -
C# 测试某段代码耗时
直奔主题,附上测试耗时代码:System.Diagnostics.Stopwatch stopwatch = new Stopwatch();stopwatch.Start(); // 开始监视代码运行时间/*** 需要被测试耗时的代码*/stopwatch.Stop(); // 停止监视TimeSpan timespan = stopwatch.Elapsed; // 获取当前实例测量得出的总时间double milliseconds = timesp原创 2021-08-25 17:43:49 · 1000 阅读 · 0 评论 -
C# new与override的介绍与区别
C#中new和override是继承中经常用到的两个关键字,但是往往有时候容易把这两个关键字的作用搞混淆。newC# new关键字表示隐藏,是指加上new关键字的属性或函数将对本类和继承类隐藏基类的同名属性或函数。public class A{ public virtual void Method() { Console.WriteLine("Thi...转载 2019-03-22 18:12:57 · 666 阅读 · 0 评论 -
C# 深入解析深拷贝和浅拷贝
一、前言 这个星期参加了一个面试,面试中问到深浅拷贝的区别,然后我就简单了讲述了它们的之间的区别,然后面试官又继续问,如何实现一个深拷贝呢?当时只回答回答了一种方式,就是使用反射,然后面试官提示还可以通过反序列化和表达树的方式。然后又继续问,如果用反射来实现深拷贝的话,如何解决互相引用对象的问题呢? 当时我给出的答案是说那就不用反射去实现呗,用反序列化实现呗,或者直接避免使两个对象互相引用呗...转载 2019-03-26 11:11:51 · 2003 阅读 · 1 评论 -
C# HttpLib使用详解
HttpLib很好用的Http请求类库,HttpLib 可以用来简化在 C# 应用中异步的访问 Web 服务的操作。支持很多种方法:using JumpKick.HttpLib.Builder;namespace JumpKick.HttpLib{ public static class Http { public static RequestBui...原创 2019-03-22 17:38:26 · 3886 阅读 · 0 评论 -
C# IDisposable用法详解
简述在Net中,由GC垃圾回收线程掌握对象资源的释放,程序员无法掌控析构函数的调用时机。对于一些非托管资源,比如数据库链接对象等,需要实现IDisposable接口进行手动的垃圾回收。那么什么时候使用Idisposable接口,以及如何使用呢?一、IDisposable的接口定义如下public interface IDisposable{ // Summary: ...转载 2019-03-22 16:31:04 · 7632 阅读 · 0 评论 -
C# using关键字的三种用法
using 关键字有两个主要用途: 作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。 作为语句,用于定义一个范围,在此范围的末尾将释放对象。(一).作为指令1、用在命名空间里 using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间,类似于Java的import,这个功能也是最常用的,几乎每个cs的程序都会用到。...转载 2019-03-22 15:52:26 · 1447 阅读 · 0 评论 -
C# .NET中的几种定时器
简述定时器是系统常用的组件之一,程序员可以根据自己的需求定制一个定时器类型,也可以使用.net内建的定时器类型。在.net中一共为程序员提供了3种定时器:System.Windows.Forms.Timer类型 System.Threading.Timer类型 System.Timers.Timer类型一、System.Windows.Forms.Timer从这个定时器的命名空间...转载 2019-03-25 14:10:18 · 14931 阅读 · 0 评论 -
C# Gmap GMapRoute虚线连接两点
简述GMapRoute在Gmap中指路线,默认情况是实线连接,但是如果我们想要使用虚线连接两点,只需将 DashStyle属性设为Dash即可。List<PointLatLng> latlngs = new List<PointLatLng>();latlngs.Add(p1);latlngs.Add(p2);route.Stroke = new Pen(C...原创 2019-03-25 11:38:00 · 2240 阅读 · 0 评论 -
C# Gmap 根据提供的经度和纬度、以及半径,取得此半径内的最大最小经纬度
简述因项目需求,所以做此功能。在网上查询了很多文章,最终调试成功一种方式://描述:根据提供的经度和纬度、以及半径,取得此半径内的最大最小经纬度//lat:纬度 lon:经度 raidus:半径(米)public static double[] GetAround(double lat, double lon, int raidus){ Double latitude = la...原创 2019-03-25 11:24:41 · 1005 阅读 · 0 评论 -
C# Gmap.Net 以某点为圆心,指定半径绘制圆,并实现圆心闪烁
简述关于Gmap,如果你不是很熟悉,可以通过以下几篇文章来了解,这里就不多介绍了。需注意一点,地图上的坐标是指(经度, 纬度)--> (y, x)-->(longitude, latitude),且中国地区的经纬度,经度大,纬度。GMap.NET 使用教程【1】GMap.NET 使用教程【2】GMap.NET 使用教程【3】流程求圆点四周,距离圆点距离为指定...原创 2019-03-25 11:02:47 · 5429 阅读 · 1 评论 -
VS2010中调用DirectShow的错误—typedef void * POINTER_64 PVOID64
简述VS2010(其他版本也适用)调用DirectShow的错误—typedef void * POINTER_64 PVOID64 或者 语法错误 : 缺少“;”(在标识符“PVOID64”的前面)。解决方法在“包含目录”下,将继承的值全部重新加入一次,并且将DirectShow的包含目录放置前面。...原创 2018-12-03 10:58:13 · 457 阅读 · 0 评论 -
vs2010出现编译错误 fatal error C1189: #error : Need to include strsafe.h after tchar.h
简述vs2010出现编译错误 fatal error C1189: #error : Need to include strsafe.h after tchar.h解决方法在头文件中最上边加上#include "windows.h"#include <tchar.h>原创 2018-12-03 11:00:11 · 2191 阅读 · 0 评论 -
VS2010 如何调试项目更清晰
调试是软件开发周期中很重要的一部分。它具有挑战性,同时也很让人疑惑和烦恼。总的来说,对于稍大一点的程序,调试是不可避免的。最近几年,调试工具的发展让很多调试任务变的越来越简单和省时。这篇文章总结了可能节省你大量时间的11个Visual studio的调试技巧和方法。1 悬停鼠标查看表达式值调试是很有挑战性的。比如在函数内逐步运行可以看出哪里出错,查看堆栈信息可以知道函数被谁调用等等...转载 2018-12-26 21:25:50 · 968 阅读 · 0 评论 -
计算机语言专业英语词汇汇总
前言学习可以使我们获得充实,学习英语可以帮助程序员更好地编程和学习,本人英语也是一般,但是计算机语言专业英语单词还是认识不少,这里我会慢慢的把一些平时会碰到的常用英语词汇总结出来,共同复习学习。第一页 warp [wɔ:rp] 弯曲 scale [skel] ...原创 2018-12-27 09:27:22 · 1925 阅读 · 2 评论 -
C# 委托和事件 详解
目录委托(Delegate) 事件(Event) 轻松了解“委托和事件”一、委托(Delegate)C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。委托(Delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegat...原创 2019-01-24 16:11:38 · 4443 阅读 · 0 评论 -
C# invoke 和 begininvoke 用法
invoke和begininvoke 区别一直对invoke和begininvoke的使用和概念比较混乱,这两天看了些资料,对这两个的用法和原理有了些新的认识和理解。 首先说下,invoke和begininvoke的使用有两种情况: 1. control中的invoke、begininvoke。 2. delegrate中的invoke、begininvoke。 这两...转载 2019-01-24 18:41:16 · 4128 阅读 · 0 评论 -
C# Lambda表达式详解
最近由于项目需要,刚刚学完了Action委托和Func<T>委托,发现学完了委托就必须学习lambda表达式,委托和Lambda表达式联合起来,才能充分的体现委托的便利、才能使代码更加简介、优雅。Lambda表达式"Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量。它可以包含表达式和语句,并且可用于创建委托或表达...转载 2019-01-25 09:50:49 · 2616 阅读 · 0 评论 -
C# Action和Func的用法详解
此篇文章一部分为转载,一部分为原创以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发现确实代码简洁了不少。这两种方式我们也可以去实践的过程去慢慢运用。先说一下委托:模拟一下场景:小明最近学习情绪高涨,以前买的书已经满足不了欲望,打算去...转载 2019-01-25 10:24:52 · 7959 阅读 · 4 评论 -
Winform开发框架DevExpress的应用
做了好多年Winform的程序的开发,主窗口的界面设计一般都要求做的更好一些,可以根据不同的系统功能模块进行归类整合,能使客户迅速寻找到相关功能的同时,也能感觉到整体性的美观大方,因此主窗口的界面设计总是会精益求精,力求做到更好用、更美观,这样才能吸引客户使用。目前的主体界面设计,可以使用很多控件进行美化,这样能使得开发者能够迅速开发好美观的界面,也可以使得界面总体性有一个统一、规范的基准。一...转载 2019-01-26 10:45:53 · 1981 阅读 · 0 评论 -
GMap.NET 使用教程【1】
GMap.NET是一个强大、免费、跨平台、开源的.NET控件,它在Windows Forms和WPF环境中能够通过Google, Yahoo!, Bing, OpenStreetMap, ArcGIS, Pergo, SigPac等实现路径规划、地理编码以及地图展示功能,并支持缓存和运行在Mobile环境中。 本文介绍了从下载安装到如何使用GMap.NET。本文所使用的GMap.NET版本为...转载 2019-01-28 17:25:48 · 4312 阅读 · 0 评论 -
GMap.NET 使用教程【2】
1、GMap体系详解 What is the map control (GMapControl)? This is the control which renders the map. What is an Overlay (GMapOverlay)? This is a layer on top of the map control. You can have several laye...转载 2019-01-28 17:41:49 · 4188 阅读 · 0 评论 -
GMap.NET 使用教程【3】
首先建立了一个winform工程,命名为GMapTest1并在工程中添加了对GMap的引用(GMap.NET.Core.dll和GMap.NET.WindowsForms.dll) 添加完成之后将GMapControl控件拖拽到Form面板上,默认GMapControl名称为gMapControl1(香农不想改了,筒子们可以改)。1、加载地图要使用GMap加载地图,首先需要指定加载的地...转载 2019-01-29 17:58:09 · 4430 阅读 · 1 评论 -
C# 获取运行文件(.exe)所在目录路径 -- 注意事项
C#中常用的获取exe所在目录的方法是:Application.StartupPath。我们获取这个路径时,有时会呈现给我们两种路径字符串方式:1、robot.exe 在项目的Release目录下,这是其中一种字符串状态:Application.StartupPath = “C:\Robot\Release”;2、另一种字符串显示状态,就是当软件安装在磁盘根目录,获取运行文件的目录时...原创 2018-11-30 14:51:07 · 6160 阅读 · 0 评论