C#(.NET)总结
文章平均质量分 68
以.NET为主,记录日常学习项目中的坑
韦_恩
【知乎:韦恩少爷】
1.测绘硕士研究生毕业、注册测绘师、软件设计师;
2.擅长C#/.Net、Android、Java、Vue、JavaScript、CAD、ArcGis等主流开发技术栈;
3.不定期分享技术干货(踩坑记录)与日常电脑使用技巧;
【流水不争先,争的是滔滔不绝】
展开
-
C#--耗时操作实现UI界面实时更新不阻塞(耗时操作解决窗体卡顿)
C#实现窗体加载进度条或者百分比实时显示耗时操作的进度,方法有很多。但是经过我的学习、查找与实际应用,发现Task配合MethodInvoker最为高效便捷。下面我就来结合代码讲一下要注意的问题。原创 2023-02-27 10:58:40 · 9701 阅读 · 0 评论 -
C# 实现若干文本文件合并为一个文件(激光点文本文件合并)
需要将若干文本文件合并到一个文本文件中,供程序调用。这个主要用在什么场景呢?激光点云数据通常是按区域以文本方式存储的,而我想将不同区域的激光点拿来一起建模。原创 2022-12-01 10:12:32 · 484 阅读 · 0 评论 -
未能找到任何适合于指定的区域性或非特定区域性的资源( System.Resources.MissingManifestResourceException)
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.Resources.MissingManifestResourceException: 未能找到任何适合于指定的区域性或非特定区域性的资源。请确保在编译时已将原创 2022-08-12 15:45:12 · 1172 阅读 · 0 评论 -
C#快速导出TXT文件
C#快速导出TXT文件转载 2022-07-25 16:46:59 · 4033 阅读 · 0 评论 -
Excel操作库--EPPLUS常用操作命令汇总(1)
Epplus常用命令汇总1原创 2022-07-06 15:18:22 · 2249 阅读 · 0 评论 -
C#加载资源图片时VS报运行时错误:【在Resources.resourceMan和Resources.resourceMan之间具有二义性】
C#加载资源图片时VS报运行时错误:【在Resources.resourceMan和Resources.resourceMan之间具有二义性】开篇先说这个问题我是什么情况下发现的。我在程序中想添加图片,为了发布时图片不丢,肯定要以资源的形式进行加载,可是就加载之后就出现了这个问题。这个问题让我困惑了20多分钟不知道咋回事!后来才发现是VS环境自动添加配置导致的问题,删掉就好!具体请看下文!...原创 2022-07-05 10:53:43 · 1448 阅读 · 0 评论 -
【转载】C# 日常小问题:DataGridview转换为DataTable
C# dgv与datatable转换原创 2022-06-27 19:29:05 · 4292 阅读 · 0 评论 -
韦_恩带你用好async/await异步多线程(C#5.0引入的特性)
周围很多人会有这样的问题:我为什么要用异步?我为什么要用多线程?我之前不知道这个,写的程序不也挺好的么?有这种想法的同学也不奇怪,因为正常的程序当计算量不大或是不需要耗时的数据交互的时候,用不用意义确实不大(比如单纯cad画图方面的开发等),这个原因可能是大部分的情况;当然还有一小部分人是压根不去管性能问题,也不去考虑体验问题,一句话:“能用就好”!emmm.....这样的话,也真的不好说啥(不能对牛弹琴!!!)。不废话了,当你看到这篇文章时,就证明你已经有想法要变革现有软件了,这很ni原创 2022-04-08 21:08:03 · 2423 阅读 · 4 评论 -
C#小技巧--获取字符串中全部的英文字母/全部的数字
string str20 = "ABC123"; string strSplit1,strSplit2; //取出字符串中所有的英文字母 strSplit1 = Regex.Replace(str20,"[0-9]","",RegexOptions.IgnoreCase); //取出字符串中所有的数字 strSplit2 = Regex.Replace(str20,"[a-z]","",RegexOptions.Ig.转载 2022-03-14 09:01:04 · 3101 阅读 · 0 评论 -
C#断言检测有啥用?他和异常处理又有什么关系?
在进行CAD二次开发的时候,看到参考书出现了Debug.Assert()语法,就又激发了我的兴趣!这倒是是啥意思呢?于是乎我搜了文档和网上一些大佬的说法,算是基本清楚了!现在我就把我的理解总结一下!目录1.前言2.Assert断言注意事项3.常用Assert断言方法的重载4.断言与异常处理的区别:5.参考文献1.前言断言作为调试和交流的辅助,断言可以帮助开发者理解代码所做的假设;断言可以在距离bug最近的地方抓住它们。看到上面这里你是不是还是不清楚?其实你完全可以.原创 2021-08-30 14:27:22 · 1784 阅读 · 0 评论 -
C#如何读取文件内容?(FileStream与StreamReader区别)
在C#中读取文件内容,有两个类可以做到,一个是StreamReader类,一个是FileStream类。那么究竟如何实现?以及他们两个有什么区别?在今后应用中应该使用哪一个?别着急,我一个个来说!目录1.开门见山谈区别2.FileStream3.StreamReader4.注意事项4.1.及时释放4.2.异步操作4.3汉字乱码5.总结:6.参考文献:1.开门见山谈区别FileStream类提供了在文件中读写字节的方法,但经常使用StreamReader或 ..原创 2021-08-27 21:09:43 · 24158 阅读 · 9 评论 -
还弄不明白【委托和事件】么?看这一篇就足够了!!!
这两个概念长时间不用了,今天看到CAD二次开发中用到了自定义事件,有点迷糊了,索性再整理一下加深印象!一说到委托和事件,他们总是绑定在一起的不可分割!可能你会说啊!这有什么用啊?尽管你没有在意,但是只要你编写C#程序,就会潜移默化的使用委托和事件,这也是多态的一种表现形式。有关多态,我们后续再说。本节力求通俗易懂的让你明白委托和事件的关系,并能自己去编写,即使不去编写也能看懂C#中的代码。目录1.委托:1.1使用委托的步骤:1.2程序应用:①声明委托②根据委托定义方法③定义委原创 2021-08-11 13:15:02 · 4626 阅读 · 4 评论 -
如何让vs2019的主题变好看(NightOwl主题为例)???像vscode和webstorm一样自定义主题!!!
用C#编程毋庸置疑除了vscode就是visual studio最好用了,但是经典的vs主题就四个,我总结为“黑白灰”还有个特别丑的“高对比模式”。用过vscode等前端开发ide的同学都知道这些ide的配色十分丰富,特别好看,我就喜欢其中一种:NightOwl,来吧上图展示:那么如何设置vs2019也能NightOwl呢?【这里以NightOwl主题为例】,废话不多说见下文(心急的直接目录“一步到位法”):目录1.微软主题网站【传统方法】2.超级简单法【一步到位法】3...原创 2021-08-10 08:34:07 · 14855 阅读 · 8 评论 -
打开单一文件及文件夹的代码记录(C#版本)
在公司进行项目准备练习的过程中,涉及到了基础操作--读取文件。由于本人很久没弄过C#的文件读取了,因此基本操作存在手生的情况,所以还是针对打开单一文件及文件夹文件的方法进行简单汇总。首先要明白,读取文件和打开文件是两回事,因为读取文件是读取文件中的每一行数据,这个需要用到文本流的内容(即StreamReader 和 StreamWriter )。如果仅是打开文件和文件夹那么就是要动态获取文件路径,本文总结的就是这种情况。目录1.读取单一文件2.读取文件整个文件目录3.总结:1.读原创 2021-08-02 09:59:27 · 983 阅读 · 0 评论 -
C#中虚方法、静态方法及实例方法简述
1.虚方法:使用virtual关键字定义,当子类继承父类时,可以对父类中的虚方法进行重写。如下面代码中的类B,它继承类A,类A实现了接口I(实现了接口中的foo()方法)。在类A中使用virtual将foo()方法定义为虚方法,故在子类B中就可以重写foo()方法。这样就不会执行类A中的foo()方法,只执行类B中的foo()方法。类B中使用override关键字定义foo()方法,表示该方法复写了父类中的虚方法。在子类中如果需要用到父类虚方法中的数据,可以在子类的覆盖方法中通过base.方法名原创 2021-07-17 11:17:58 · 1073 阅读 · 0 评论 -
C#中DataSet类的使用
DataSet类是ADO.NET中最核心的成员之一,也是各种开发基于.Net平台程序语言开发数据库应用程序最常接触的类。每一个DataSet都有很多个DataTables和Relationships。RelationShip应该也是一种表,特殊的是,这个表只是用来联系两个数据表的。每一个DataTable都有很多datarows和datacols, 也包括ParentRelations,ChildRelations 和一些限制条件像主键不可以重复的限制。DataSet每一行有一个RowState属性..转载 2021-05-06 16:30:19 · 3521 阅读 · 0 评论 -
WPF中DataGrid常用属性
<Style TargetType="{x:Type DataGrid}"> <Setter Property="RowHeaderWidth" Value="0"></Setter> <!--去掉第一列空白--> <Setter Property="GridLinesVisibility" Value="None"></Setter> <!--去掉网格线--> <Set...原创 2020-09-17 17:23:57 · 1138 阅读 · 0 评论 -
WPF中为button按钮设置CornerRadius圆角
XAML代码:<Button x:Name="btnUpLoad" Style="{DynamicResource BtnUpLoadStyle}" Content="上传" Width="75" Height="25"> <Button.Resources> <Style TargetType="{x:Type Border}"> <Setter Property="CornerRadius" V.原创 2020-09-17 09:45:16 · 6140 阅读 · 0 评论 -
ArcGIS Pro二次开发禁用某些控件(Tab,Group,Control)--常用于权限管理
在用ArcGIS Pro进行个性化开发时,尤其当客户想增加权限管理时,就会涉及控件的(禁用/启用)和(可见/不可见),下面记录下我的学习过程,方便以后回顾。ArcGIS Pro SDK for Microsoft .NET中框架部分(关于常见必备知识都在这里)https://github.com/esri/arcgis-pro-sdk/wiki/ProConcepts-Framework#buttonArcGIS Pro中Manage the Pro UI with conditions地址(通原创 2020-09-08 17:37:23 · 440 阅读 · 0 评论 -
ArcGIS Pro二次开发Add-in加载项插件存放位置
有时候我们用vs启动多个ArcGIS Pro Module Add-in程序时之前的插件会继续出现在第二个程序中这时我们就要将其弄掉,来看看他在那里吧!C:\Users\用户名\Documents\ArcGIS\AddIns\Desktop版本号\{…………一组GUID…………}这样的路径下。我的:C:\Users\esri\Documents\ArcGIS\AddIns\ArcGISPro找到后删掉就OK了...原创 2020-09-07 15:38:10 · 1562 阅读 · 2 评论 -
C#程序通过ORM框架连接Oracle数据库--NHibernate篇
因项目后台库管系统的需要,采用C#做开发语言,Oracle做数据库,ORM框架选择了NHibernate,这个ORM不是我熟悉的EF框架(EntityFramework),但原本心想ORM都差不多的,结果实际操作起来还是有很多坑,加上此前没用过的Oracle数据库,网上相关资料不是很老就是所答非所问。索性现在弄出来了,就做个总结以备不时之需。同时也给像我一样刚接触的朋友一个参考。先说下项目配置:①数据库用的是Oracle11g,部署在公司局域网环境中,通过VPN访问,本机通过DataGrip...原创 2020-08-12 19:24:30 · 1560 阅读 · 2 评论 -
WPF加载GIF动画踩坑记录
WPF加载简单gif大致分三步:1.添加NuGet包:在你需要加入gif的文件引用处添加“wpfanimatedgif”引用2.在XAML界面添加引用: xmlns:gif="http://wpfanimatedgif.codeplex.com"加在这个位置:3.插入gif图片的标签: <Image Name="gifImage" gif:ImageBehavior.AnimatedSource="圆圈.gif" Height="21" Width...原创 2020-08-11 11:25:47 · 1479 阅读 · 0 评论 -
线程开启需要占用的资源有哪些?
一、线程开启所占用的空间开销【1】Thread内核数据占用:主要有OSID(线程的ID)和Context(存放CPU寄存器相关的资源)寄存器的状态会被保存到Context中,以便下次使用。因为多线程程序和主线程程序执行主要是依赖时间片切换(所以电脑使用中不会有卡顿情况)。通常系统分配一个时间片大约30ms,意思就是1秒中被分配至少33份,分别执行不同的线程。【2】Thread环境块(了解)【3】用户堆栈模式(主要部分):用户程序中的局部变量和参数传递所使用的堆栈,如果是引用类型则使用堆的空间,如原创 2020-05-17 15:45:26 · 5412 阅读 · 0 评论 -
C#中ComboBox的SelectedIndexChanged事件由于触发时间而引起的“未将对象引用到对象实例”错误解决
今天偶尔复习下WinForm开发,在用到ComboBox下拉框的时候,想用SelectedIndexChanged事件根据选中内容动态展示不同的数据,需求很简单,但是竟然出错了,后来发现其实就是SelectedIndexChanged事件执行时间问题导致的,那如何解决呢,请看下面的分析。一、DataBind()方法就是给下拉框绑定的方法(这里为了让下拉框默认不选中,设置了SelectedIndex = -1)这个位置就是出问题的地方 //数据绑定 private voi原创 2020-05-08 22:13:59 · 6692 阅读 · 0 评论 -
C#利用Linq从内存集合中获取数据后在ListBox与DataGridView中实现异步刷新区别(减少对数据库的访问次数)
当我们用Linq技术从之前查询出来的结果集合中找到某一条记录,并要对本条记录进行修改,通常刷新做法是直接调用下原来的绑定方法,即从数据库再次查询并绑定。这样做虽然不影响结果,相比来找此类问题的人 都知道效果是什么样的。接下来简单说明这两个控件如何无刷新绑定。1.ListbBox控件使用linq查询后,最好的版本就是清空listbox捆绑,之后重新绑定。例如://刷新数据库int a...原创 2020-04-15 23:43:21 · 487 阅读 · 0 评论 -
C#中Const常量和ReadOnly的区别总结
复习基础知识的时候,看到了readonly这里,被书里说的感觉忘了和const有什么区别了,索性今天就总结一下,以便于后续的学习。一、常量Const:1.声明时必须初始化值;2.声明后值不能改变;3.编译时决定;4.通常是简单类型或由简单类型组成的表达式做初始化语句,也可以是Null引用,但是不能是某个对象的引用,因为对象引用是在运行时决定的;5.更像“静态值”,因为...原创 2020-04-14 11:04:16 · 314 阅读 · 0 评论 -
Task跨线程耗时操作改进
使用task跨线程访问一般会报错,即一个子线程无法访问主线程创建的控件,此时加上TaskScheduler.FromCurrentSynchronizationContext()就可以解决。 //异步更新数据(TaskScheduler.FromCurrentSynchronizationContext())能解决跨线程访问出错问题 private void bt...原创 2020-04-06 11:16:50 · 379 阅读 · 0 评论 -
web请求报出 “超过了最大请求长度”
错误原因:asp.net默认最大上传文件大小为4M,运行超时时间为90S。解决方案:1. 修改web.config文件可以改变这个默认值<configuration><system.web><httpRuntime maxRequestLength="1048576" executionT...转载 2020-04-01 17:33:07 · 3694 阅读 · 0 评论 -
在ASP.NET-MVC中基于jquery的无刷新分页实现
每次使用都得翻前面的代码,给自己的使用增加了很多麻烦,索性今天就一起总结了,在方便我自己的同时希望也能对大家有所帮助。直接上码:1.要在前端界面中插入代码段(这个代码段要根据情况用高度剩余法或者绝对定位方法,固定到底部,否则他会随内容多少上下动) <div class="row"> <div class="col-md-12"> ...原创 2020-03-25 23:10:15 · 287 阅读 · 0 评论 -
json格式传递日期数据前端无法转换解决办法
服务器向客户端传递数据如果数据量大,需要考虑将其转换为json格式在传递,但是其在传递日期的时候客户端却无法转换过来。在网上搜索了下解决方案,主要有三种方法,具体介绍如下:方法一:在服务器端将日期格式使用Select方法或LINQ表达式转换后发到客户端 //学生对象集合 List<Student> students = new List&...原创 2020-03-25 22:21:19 · 1453 阅读 · 0 评论 -
C#未将对象引用设置到对象的实例(序列化,反序列化时候出现的问题)
C#序列化文件后,再反序列化读取时,出现得【未将对象引用设置到对象的实例】得错误,这个错误应该很常见了,就是因为使用了空值得对象,解决方法就是找到引用得对象附上初始值就可以。但是我在反序列化时候就出现了错误,以至于找了一上午才找到究竟是哪里没有初始化。原创 2019-08-13 16:29:55 · 2621 阅读 · 3 评论 -
Razor视图将数据库中由富文本编辑器上传的数据(带html标签)转换为前端页面元素展示
我们正常由富文本编辑器插件编辑内容时候,可以设定任意格式,这个与word基本一致,但是保存到数据库时是带着标签的,废话不多说 ,看图看过程。1.富文本编辑器中内容(对字体设置加粗,倾斜)2.数据库中格式,增加了p标签 ,em标签,strong标签如果不经过处理再用Razor视图读取的时候是这样的(带着标签的,并不能转换为标签属性)3.这时候只需要在展...原创 2020-02-15 15:13:21 · 844 阅读 · 0 评论 -
ASP.NET-MVC异步登录跳转实现
每次要用到登录 想到异步方式都要现去找以前的项目,真是麻烦,今天就干脆把具体过程记录在这里,也供大家借鉴,欢迎大家提出更好的方式,或者改进。废话不多说,进入正文。MVC项目主要分三块,M,V,C,M实体类很简单就不说了,接下来主要对视图和控制器部分进行说明1.视图部分这里要说明一下,因为是ASP.NET-MVC所以对原来静态界面进行了改造:加上了模型映射@model Models....原创 2020-03-23 16:03:51 · 996 阅读 · 0 评论