2023-02-28 14:40:41
勇哥注:今天突然发现强制类型转换和as还是有点区别的。比如下面这句会抛异常:其中SACItemRunStatusEnum是一个枚举。ItemRunStatus= (Tuple<SACItemRunStatusEnum, int>)data异常信息如下:无法将类型为
“System.Tuple`2[Samsun.Domain.MotionCard.Common.SACItemRunSt...
2023-02-24 15:04:21
勇哥注:群里有人介绍到这个FlexCell表格控件,突然发现它在腾讯的软件中心中有。突然就升起了敬意。因此试用一把吧。另外vb.net 开发的控件,还能拿出来商业出售,由于大家都知道的原因,这着实让人有点惊讶,这让我对C#的商业软件开发有了点底气。FlexCell表格控件 for .NET是采用VB.NET开发的表格/报表控件。官方介绍如下:FlexCell是一款简单易用的表格控件,提供了非常全面...
2023-02-24 14:37:16
勇哥注:C# 多线程调用单例类时的安全性问题是非常值得我们重视的,出现类似的问题会造成软件出现偶发问题,非常隐蔽。单例类造成的问题主要有两方面: 一是你的单例到底是不是单例? 二是你的单例是不是在被多线程调用。第一个问题请参考:C#实现单例模式的几种方法总结 http://www.skcircle.com/?id=1924 第二个问题请参考下面的说明:多个线程,同时调用单例的同一个方法会出现什么现...
2023-02-23 08:37:40
(六)串口无协议读写指令RXD、TXD有了串品读写,PLC就可以发信息给上位机,这样可以做许多有意思的事情,比如写个小游戏,可以让PLC做逻辑,上位机程序负责更新界面。RXD为读串口,TXD为写串口。下面的程序中,A526.01的作用如下:当通讯突然中断时,缓冲区内的数据一直保存,事实上,RXD指令并不负责清空缓冲区,换句话说,缓冲区内始终为接收的数据。所以,如果遇到这种问题,你可以执行A526....
2023-02-22 22:42:02
勇哥注:网上和B站上都讲得是勾选winxp sp3的兼容模式,但是在勇哥的win10电脑上面并没有卵用。经过研究,下面的方法可以安装。(1)管理员方式运行setup.exe可以从任务管理器看到无反应,内存也不增涨。(2)右键”转详细信息“(3)在进程Setup.exe上右键”分析待待链“(4)如下,勾选后”结束进程“反复做第4步,直到看到安装程序正常进行安装为止。勇哥这边大概结束了7,8个进程。搞...
2023-02-21 22:33:07
勇哥注:为了方便大家做面向对象的实践,特地收集了几个例子:“动物的运动会”、“计算器”、“养猪场的故事”。它们都有参考答案,见下载。这篇里勇哥只写出需求和知识点而不直接提供代码,以方便大家做编码练习。常见的设计原则:面向对向程序的三大特征:
封装,隐藏内部实现
继承,复用现有代码
多态,改写对象行为
设计模式的核心思想:
(1)设计模式最根本的意图是适应需求的变化。
(2)编码应采...
2023-02-21 19:23:50
本文提供了一些性能优化的建议,这些经验来自于使用托管代码重写C# 和 VB编译器,并以编写C# 编译器中的一些真实场景作为例子来展示这些优化经验。.NET 平台开发应用程序具有极高的生产力。.NET 平台上强大安全的编程语言以及丰富的类库,使得开发应用变得卓有成效。但是能力越大责任越大。我们应该使用.NET框架的强大能力,但同时如果我们需要处理大量的数据比如文件或者数据库也需要准备对我们的代码进行...
2023-02-20 23:33:23
1、 IComparable接口IComparable接口定义通用的比较方法。由类型使用的IComparable接口提供了一种比较多个对象的标准方式。如果一个类要实现与其它对象的比较,则必须实现IComparable接口。由可以排序的类型,例如值类型实现以创建适合排序等目的类型特定的比较方法。2、 IComparer接口是特定用于Array的Sort和BinarySearch方法,通过实现ICo...
2023-02-20 11:19:41
勇哥注:这个系列的贴子主要是为了培训用(专职自动化设备的C#软件工程师),因此例子的知识范围被限制在行业范围内。C#基础知识在网上是最多的存在,不足主要下面几点:1. 内容零碎,没有大纲来组织2. 什么功能都有讲,就是没有按实际项目的常用程度来组织3. PLC转上位机的人员,很难把PLC的编程思想转到C#编程上来,需要在知识点讲解上对此问题有点拔勇哥的这套贴子会有大纲,主要特点是补足以上几点问题,...
2023-02-20 11:11:41
勇哥注:这个系列的贴子主要是为了培训用(专职自动化设备的C#软件工程师),因此例子的知识范围被限制在行业范围内。C#基础知识在网上是最多的存在,不足主要下面几点:1. 内容零碎,没有大纲来组织2. 什么功能都有讲,就是没有按实际项目的常用程度来组织3. PLC转上位机的人员,很难把PLC的编程思想转到C#编程上来,需要在知识点讲解上对此问题有点拔勇哥的这套贴子会有大纲,主要特点是补足以上几点问题,...
2023-02-19 11:53:15
勇哥注:这个系列的贴子主要是为了培训用(专职自动化设备的C#软件工程师),因此例子的知识范围被限制在行业范围内。C#基础知识在网上是最多的存在,不足主要下面几点:1. 内容零碎,没有大纲来组织2. 什么功能都有讲,就是没有按实际项目的常用程度来组织3. PLC转上位机的人员,很难把PLC的编程思想转到C#编程上来,需要在知识点讲解上对此问题有点拔勇哥的这套贴子会有大纲,主要特点是补足以上几点问题,...
2023-02-18 14:06:54
勇哥注:这个系列的贴子主要是为了培训用(专职自动化设备的C#软件工程师),因此例子的知识范围被限制在行业范围内。C#基础知识在网上是最多的存在,不足主要下面几点:1. 内容零碎,没有大纲来组织2. 什么功能都有讲,就是没有按实际项目的常用程度来组织3. PLC转上位机的人员,很难把PLC的编程思想转到C#编程上来,需要在知识点讲解上对此问题有点拔勇哥的这套贴子会有大纲,主要特点是补足以上几点问题,...
2023-02-17 22:04:43
勇哥注:这个系列的贴子主要是为了培训用(专职自动化设备的C#软件工程师),因此例子的知识范围被限制在行业范围内。C#基础知识在网上是最多的存在,不足主要下面几点:1. 内容零碎,没有大纲来组织2. 什么功能都有讲,就是没有按实际项目的常用程度来组织3. PLC转上位机的人员,很难把PLC的编程思想转到C#编程上来,需要在知识点讲解上对此问题有点拔勇哥的这套贴子会有大纲,主要特点是补足以上几点问题,...
2023-02-17 15:53:39
如果你和同事修改的同一个分支,改动都不小,为了防止提交冲突,覆盖对方的修改,避免出错,如何做呢首先将自己的修改暂存,git stash其次拉取对方修改的代码,git pull然后再 将你自己的改动取出, git stash pop有冲突就解,没有就提交git add .git commit -m 'update'git pull git push即可,完美!!!!—————————...
2023-02-17 13:59:17
勇哥注:由于VS自带有git管理功能且相当完善,所以第三方git工具相对来讲就显得不那么重要。通常技术人员会刻意维护技术的复杂性,会Git的人,可能会鄙视用Fork之类git图形化软件的人、以上两者都会鄙视用vs自带git工具的人,因为一门技术一但傻瓜就会伤了一些前辈的自尊。我们还是抛弃掉这种技术自尊,努力适应傻瓜型的新技术吧!(也许未来低端的编程都会傻瓜到机器自己去编制了)系列贴子汇总:VS的g...
2023-02-17 10:52:52
对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。这时分两种情况。一种情况是,你需要另一个分支的所有代码变动,那么就采用合并(git merge)。另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用 Cherry pick。一、基本用法git cherry-pick命令的作用,就是将指定的提交(commit)应用于其他分支。$ git cherry-pick <co...
2023-02-16 23:30:40
勇哥注:此君的看法还是蛮有见地,特收录供大家共勉。先来看下《天龙八部》第39章——“解不了,名缰系嗔贪”——中几段描写大轮明王鸠摩智的文字,它给出了程序员如何不被淘汰的答案。鸠摩智道:“方丈要小僧主持公道,分辨是非,那是万万不敢。
只是小僧适才在山门外听到玄生大师和哲罗星大师讲论武功,颇觉两位均有不是之处。”
群僧都是一凛,均想:“此人口气好大。”玄生道:“敬请国师指点开示。”
鸠摩智微微一...
2023-02-16 10:22:33
勇哥注:由于VS自带有git管理功能且相当完善,所以第三方git工具相对来讲就显得不那么重要。通常技术人员会刻意维护技术的复杂性,会Git的人,可能会鄙视用Fork之类git图形化软件的人、以上两者都会鄙视用vs自带git工具的人,因为一门技术一但傻瓜就会伤了一些前辈的自尊。我们还是抛弃掉这种技术自尊,努力适应傻瓜型的新技术吧!(也许未来低端的编程都会傻瓜到机器自己去编制了)系列贴子汇总:VS的g...
2023-02-15 16:29:07
简单概括两者的概念git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。1.两者相同点先在作用上他们的功能是大致相同的,都是起到了更新代码的作用。2.不同点首先我们要说简单说git的运行机制。...
2023-02-15 16:16:16
勇哥注:由于VS自带有git管理功能且相当完善,所以第三方git工具相对来讲就显得不那么重要。通常技术人员会刻意维护技术的复杂性,会Git的人,可能会鄙视用Fork之类git图形化软件的人、以上两者都会鄙视用vs自带git工具的人,因为一门技术一但傻瓜就会伤了一些前辈的自尊。我们还是抛弃掉这种技术自尊,努力适应傻瓜型的新技术吧!(也许未来低端的编程都会傻瓜到机器自己去编制了)系列贴子汇总:VS的g...
2023-02-14 21:05:25
勇哥注:一直没搞清楚 git checkout,git restore 和 git reset的用法和区别,正好这几天不忙,简单梳理了一下,终身学习,持续进步。一、git checkout 用法总结1.切换与创建分支git checkout <branch_name > 切换分支#git switch <branch_name> 切换分支git checkout -b &l...
2023-02-14 14:43:28
勇哥注:如果你的初始版本在没有添加忽略文件.gitignore的情况添加到了暂存区、本地版本仓库、远端版本仓库。此时你的bin目录下的各类dll, pdb等文件会一并上传。此后,你每改一次代码(哪怕只改了一个字),重新编译后你的更新文件可能达到数千,原因是dll和pdb之类的二进制文件都会相应起变化。这样的状态下,如果你的两个分支相合并,就会产生数千个冲突。此时你想到要添加.gitignore,忽...
2023-02-11 09:30:14
简介说明本文用示例介绍如何将已经加入git控制(Tracked)的文件解除git控制(取消文件跟踪)。方法对比法1:将文件先备份到其他位置,然后用git删除文件,再将备份的文件拷贝过来。此法无脑,简单,但太低级,略麻烦法2:使用命令:只删除追踪,但不删除文件。此法最好,本文介绍此法。方法概述对某个文件取消跟踪git rm --cached readme1.txt //删除readme1.tx...
2023-02-09 22:40:00
勇哥注:想试下怎么改SIM卡的密码,这样无论是本机用还是把SIM卡拔出插到别人手机上用,都需要先输入PIN码。这样手机丢了,人家就不能用你的SIM卡来收发验证短信了。但是这个功能有个坑,网上好像少有人知道。。。小米中这个改SIM卡密码的功能如图1所示。如果你用,则不会有问题。如果使用这个功能,设置好新密码后,重启手机,悲催的事情发生了。。。。你会发现两张SIM卡都找不到了,而且系统也不会提示你需要...
2023-02-09 15:27:14
第一个问题:从这个回答来看,跟人类很像!有点震惊。。。下面增加一点难度,我把上面的问题再重复一次,如果只是查询式回答,有可能是一样的答案。结果打脸了,这个结果完全不同,而且建议也有区别,貌似感觉语气也有点区别。。。感觉有点可怕了。。。这东西是不是能通过图灵测试呀!下一个问题,让配一台电脑。从结果来看有几点很惊讶: 显卡推荐蛮准的,这个价位就是它了 电源推荐很有经验,850W,这样本机还有升级空间...
2023-02-09 11:25:29
勇哥注:C#序列化与反序列化是大家用得非常多的功能。它可以保存C#中的对象,并且可以读回来。但是请注意如果对象中有下面的一些数据结构,它是无法保存或者读取的。(1)接口例如下面的接口ICard, 此时保存是可以的,只是读取时直接报错。public Dictionary<string, ICard> _CardObjectList = new Dictionary<string,...
2023-02-09 09:34:28
勇哥注:今天偶尔用打开一个pdf文档。发现可以选中句子后,右侧有工具箱实时进行翻译。如下图所示,翻译质量还蛮高的。一直以来都是使用再线的百度词典在翻译,效率不高。后来发现,打开pdf的关联程序是wps。wps的这个是通过右键菜单的“划词翻译”打开的翻译面板。而在wps的word编辑页面中,是用“翻译”的快捷菜单打开翻译面板的。感觉这个功能还是蛮好用的,终于可以替代百度词典了。...
2023-02-07 16:08:06
勇哥注:由于VS自带有git管理功能且相当完善,所以第三方git工具相对来讲就显得不那么重要。通常技术人员会刻意维护技术的复杂性,会Git的人,可能会鄙视用Fork之类git图形化软件的人、以上两者都会鄙视用vs自带git工具的人,因为一门技术一但傻瓜就会伤了一些前辈的自尊。我们还是抛弃掉这种技术自尊,努力适应傻瓜型的新技术吧!(也许未来低端的编程都会傻瓜到机器自己去编制了)系列贴子汇总:VS的g...
2023-02-07 14:17:50
勇哥注:给分支加注释是有实际意义的,因为本地分支可能非常多。本篇说下办法。下面指令演示了对本地的分支devLxy加注释,和显示出来。Administrator@SA-G--202110-DJ0221 MINGW64 /d/localLib/SMotion_v3 (devLxy)
$ git config branch.devLxy.description '此分支为刘xx2023年2月开...
2023-02-06 22:40:49
勇哥注:由于VS自带有git管理功能且相当完善,所以第三方git工具相对来讲就显得不那么重要。通常技术人员会刻意维护技术的复杂性,会Git的人,可能会鄙视用Fork之类git图形化软件的人、以上两者都会鄙视用vs自带git工具的人,因为一门技术一但傻瓜就会伤了一些前辈的自尊。我们还是抛弃掉这种技术自尊,努力适应傻瓜型的新技术吧!(也许未来低端的编程都会傻瓜到机器自己去编制了)系列贴子汇总:VS的g...