自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (9)
  • 收藏
  • 关注

原创 Python - Decorator(装饰器) - Cell和Free Variable

谈到装饰器(decorator),离不开闭包(closure)!谈到闭包(closure),离不开Cell和Free Variable!只要理解了Cell和Free Variable,那才算是真正地理解了闭包和装饰器!什么是Cell和Free Variable我们先来看Free Variable。我们知道Python的变量(variable)都是在某个作用域中的。这4个作用域你一定了解,local, nonlocal, global(module) 和 built-in。某个变量名的查找

2021-07-08 15:38:58 331

原创 Python - Decorator(装饰器) - 带参数的

我们通过以示例来看看带参数的装饰器到底怎么回事。from time import perf_counterfrom functools import wrapsdef repeated(times): def outer(fn): @wraps(fn) def inner(*args, **kwargs): for i in range(0, times): result = fn(*args, *

2021-07-08 14:32:36 471

原创 Python - 装饰器(Decorator) - 可调用的(Callable)

其实这个是个大家都已比较熟悉的话题,Callable,也就是可调用的。但当接触到装饰器(decorator)的时候,表现形式复杂些时,我发现还是有必要理清一下的。什么是Callable任何可以使用括号操作符的目标都是可调用的。如果我们在Python使用某个目标具有以下特点,我们就说这个目标是可调用的。目标名在Python中目标名往往都是绑定某个目标的内存地址。我们就是通过目标名最终引用到目标本身。括号当标签名后面跟着括号时,那就是说有代码被执行了输入和输出输入:也就实参,在

2021-07-08 12:53:05 464

原创 C#通过树莓派(3B+)蓝牙来扫描设备

最近用C#写个一个通过树莓派(RaspberryPi)3B+的蓝牙模块来扫描那些电子设备。当时实现的时候也是花了些时间。现在把代码整理一下,给需要的人参考一下!NuGet Packages首先从NuGet上装几个packagelog4net -用来记录日志,实在太好用了! SSH.NET -用这个来实现通过SSH和树莓派进行通讯 System.ValueTuple -这个是...

2020-03-13 10:47:54 772

原创 【编程辅助工具】RegexBuddy

正则表达式用来分析字符串实在太强大了,但正则表达式的规则实在无法保证一直不会记错。RegexBuddy就会用一种可视化的方式用来帮助你构建正确的正则表达式。肯定也有其他类似的软件,但这个一直是自己使用的。...

2020-01-19 14:05:41 911

转载 痛恨LabVIEW!

以下在国外网站看到的~~~~本人也比较同意LabVIEW只合适比较简单的程序,如果程序稍微复杂一些,你会发现软件工程中好多好的理念和实践都是不可以用到LabVIEW中。不能理解为什么好多公司还在用LabVIEW开发?why I hate, despise, detest, and loatheLabViewInability to write descriptive comme...

2019-09-10 16:33:16 2588 1

原创 【C# AT Lib】4:AT Response

AT Response相对来说比较简单,就是包含一些数据,没有包含什么行为(也就是方法)。 public class AtResponse { public AtCommand AtCommand { get; set; } public string RawResponse { get; set; } public bool...

2019-04-17 15:43:23 317

原创 【C# AT Lib】3:AT Command

我们在设计AT Command,需要把期望AT Response是什么样的信息放进去,这样在底层进行AT通讯的时候就可以自动加入Retry功能。定义ResultCode枚举变量 public enum ResultCode { OK, ERROR }定义ResponseExpectation类告知AT Respon...

2019-04-17 15:35:51 388

原创 【C# AT Lib】2:Lib设计的一些考虑

我们先来谈一谈设计AT Lib的一些考虑。Sync和Async毕竟和串口通讯这样的硬件打交道,我们需要支持异步调用吗?我觉得一般在软件的高层会去实现异步调用(一般通过开启一个单独线程),所以AT Lib在设计的时候只支持同步调用。Response Timeout发送AT Command后,等待Modem的Response肯定需要超时管理。例如Modem死掉了,这样AT ...

2019-04-16 11:01:50 209

原创 【C# AT Lib】1:AT命令简介

AT命令是普遍用来和Modem设备进行通讯。各种设备有自己支持的AT命令集,可以参考各自的技术文档查看所有详细的AT命令用法。我们先来看一些技术术语AT命令技术术语 术语 描述 AT Command 就是发送给Modem的字符串形式的命令 Result Code 会立即回复给发送方。 大多数会包含“OK”或者“ERROR”这两种中的其中...

2019-04-16 10:28:05 1043

原创 【C#】拷贝数据到网络映射盘时遇到找不到共享路径的问题

问题在Windows系统中(引入UAC之后),成功映射网络盘后,如果以Administrator去运行CMD.exe,根本找不到网络共享路径。那通过程序也无法自动传数据到网络共享路径中去。 解决方法一(这个没有成功):添加HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\En...

2019-01-29 14:46:44 2826 1

原创 深入浅出Head First设计模式配套视频

O'Reilly的Head First(深入浅出)系列教程可谓是大名鼎鼎。最近拜读了Design Pattern(设计模式),写得真是不错。可以从以下地址下载其中两位作者Elisabeth Robson和Eric Freeman录制的配套视频。【Part 1/2】https://download.csdn.net/download/zbbfb2001/10680196【Part 2...

2018-09-21 08:35:03 469 2

原创 【Testability】怎样整合log4net不影响代码的可测试性?

根据DDIY(Don't Do It Yourself)原则,如果程序需要日志功能,log4net是一个很好的选择。但在整合log4net的过程中,我们该怎么做不影响代码的可测试性。第一种整合f...

2018-07-11 11:15:20 198

原创 【Practical C#】C#中的迭代器 Iterator(IEnumerable和IEnumerator)

网上关于C#的迭代器教程也很多,但很多例程只是简单的封装一个可以迭代的实例变量,然后直接返回此实例变量的迭代器或者使用yield return语句。这样的例程没有触及到真正迭代器的实现。问题域描述:给定一个整数序列,统计连续的奇数或者偶数的个数。例如对于以下整数序列1, 2, 4, 10, 10, 8, 25, 13, 5, 7输出:IsOdd = True, Count = 1 (根据 1 中统...

2018-07-04 10:41:02 452

原创 C#中异步匿名委托和Lambda表达式

C#中async/await真的是大大简化了异步程序的编写,但往往我们可能忽略了异步匿名委托和Lambda表达式。直接上代码:class Program{    static void Main(string[] args)    {        Func<Task> asyncFunc1 = async delegate        {            Cons...

2018-05-17 14:35:19 1345

原创 WPF中Grid(网格)的GridSplitter(网格分割)

如果在WPF中的Grid中加入GridSplitter(网格分割条),以下是最佳实践。分配整个一行或者一列给分割条,并把行高或者列宽设置为Auto使用Grid.RowSpan或者Grid.ColumnSpan以让它撑满这个网格的全高或者全宽为了使分割条看得更能清楚设定它的宽度或者高度为一些足以看到的值,例如5设置这个GridSplitter的Background属性为更显眼的颜色设置这个GridS...

2018-05-10 16:38:55 2382

原创 C#在Win 7/8/10 OS下删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB子项

从Win XP到Win 7/8/10,OS(Operating System)有些安全特性改变了,所以不能向以前Win XP那样直接可以删除Windows Registry中的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB下面的子项。我们可以通过以下方法。生成的exe需要运行在Administrator模式下。这点是关于UAC(User C...

2018-04-24 08:47:13 7744

原创 【Vtt2Srt】IoC, DI, DIP

IoC: Inversion of ControlDIP: Dependency Inversion Principle (SOLID当中的D)DI: Dependency Injection每当看到这些词,总觉得它们是差不多的。但它们之间应该还是有些细微的差别的。以下只是根据自己的理解,如果哪里错了,还望指正。IoC:每当我们提到IoC,一般就是指IoC Container。例如Autofac。...

2018-04-03 16:47:29 229

原创 【Vtt2Srt】Console主程序

Vtt2Srt工具最终会有一个console和WPF主程序,所以共用的部分会放到一个单独的程序集里面。以下是Console程序的最顶端using System;using Autofac;using Vtt2Srt.Core; namespace Vtt2Srt.Console{    class Program    {        static void Main(strin...

2018-04-03 16:02:57 432

原创 【Vtt2Srt】VTT转SRT工具 Vtt2Srt

工具可以从以下地址下载https://download.csdn.net/download/zbbfb2001/106621431. 打开软件2. 选择文件夹目录可以在文本框中直接输入文件夹目录 或者点击“浏览(B)...”按钮选择目录3. 点击“开始转换(C)...”按钮 4. 等待软件完成5. 查看目录下的SRT文件迅雷影音播放时就可以看到字...

2018-04-03 15:54:53 6756 4

转载 【Testable Code】Unit Tests, How to Write Testable Code and Why it Matters

单元测试和TDD (Test-Driven Development)的好处就不多说了。为什么这么好的软件开发实践却往往很少有人去实践?- 被测试的代码需要留心可测试性- 好的单元测试也需要花时间去学习如果Production Code不是Testable Code,那单元测试会很难实施。今天转发一篇文章,关于Testable Code的,写得非常好!在把一些原则和最佳实践讲得浅

2018-01-17 11:15:36 265

原创 Delegate(委托)中的Covariance(协变)和Contravariance(逆变)

在Delegate当中,Variance(变异)是比较简单的理念,但不能深入理解的话,还是感觉比较疑惑的。Covariance(协变)Return types are compatibleA delegate variable can be used with a method that retures a type that is derived from the del

2017-11-21 13:01:03 351

原创 测试驱动开发(TDD)的一些思考

最近在学习测试驱动开发(TestDriven Development,简称TDD)。我的感受可以用这句来形容比较贴切,“理想总是饱满的,现实都是骨感的”。       当我说“理想总是饱满的”时,那是因为TDD所致力于的目标所带来的好处,确实很诱人。代码松耦合、不惧代码重构等等,这些都是极具价值的。        当我说“现实都是骨感的”时,那是因为想用TDD去开发项目,需要了解的东西确实

2017-11-21 10:07:02 523

原创 WPF中的ComboBox

ComboBox是常用的一种控件。Combox中选项往往和枚举(enum)想对应。在WPF中,ComboBox有SelectedIndex, SelectedItem, SelectedValue, SelectedValuePath和SelectionBoxItem。这么多和Select相关是不是有点晕?接下来,我们运行一些code来看看他们直接的区别。创建WeekDay枚举类型

2017-10-11 11:26:08 2052

原创 C#枚举所有串口COM

在实际项目中,如需都COM进行操作,往往需要枚举当前电脑中可用的所有串口COM。我们第一想到的就是SerialPort.GetPortNames()方法。但这种方法有个缺陷那就是不能罗列那些通过USB连接虚拟出来的COM口。public abstract class PortInfoBase { public string PortName { get; set;...

2017-09-05 12:35:19 3650

原创 一些关于怎样把log4net信息输出到UI界面的思路

如果需要C#程序加入日志功能,那log4net绝对是一个不错的选择。- 经过一些简单的配置,就能实现各种不同需求的日志功能了- 保持你的code尽量的简洁了,也不影响单元测试- 不需要考虑多线程- ...我用了之后,再也回不去那些没有log4net的日子了。在使用过程中,想把log4net的信息同步显示到UI某个控件中。以下是我的做法。首先定义一个EventAr

2017-09-05 08:51:21 3528 1

转载 LINQ - Query Comprehension Syntax

LINQ - Query Comprehension Syntax

2017-09-04 09:23:57 271

原创 C#的相等性(值类型和引用类型)

关于C#的相等性,还是Microsoft写的文章最好 (https://msdn.microsoft.com/zh-cn/library/dd183755(v=vs.120).aspx)。1. 重载operator ==的时候,代码可以在简洁一点return ReferenceEquals(left, null) ? ReferenceEquals(right, null)

2017-08-18 12:19:53 303

原创 C# XML Serialization序列化成字符串含有65279

遇到C# XML Serialization序列化成字符串含有65279问题。解决方案如下...这行是最重要的Encoding = new UTF8Encoding(false), // Disable to provide a Unicode byte order mark附完整代码:public static class XmlSerializationHelpe

2017-07-12 17:04:04 624

【视频教程】Lynda - Foundations of Programming - Design Patterns.zip.002【Part 2/2】

资源分成2个压缩包,详情请参考 https://blog.csdn.net/zbbfb2001/article/details/82795989

2018-09-21

【视频教程】Lynda - Foundations of Programming - Design Patterns.zip.001【Part 1/2】

资源分成2个压缩包,详情请参考 https://blog.csdn.net/zbbfb2001/article/details/82795989

2018-09-21

【串口工具】Eltima.Virtual.Serial.Port.Driver.8.0.412.Incl.Crack

Eltima.Virtual.Serial.Port.Driver.8.0.412.Incl.Crack 串口小工具,对软件开发比较有帮助

2018-09-13

【串口工具】Eltima.Serial.Port.Monitor.v5.0.125.Cracked-SND

Eltima.Serial.Port.Monitor.v5.0.125.Cracked-SND 串口工具,对软件开发比较有帮助

2018-09-13

【串口工具】Eltima.Advanced.Serial.Port.Terminal.v6.0.382.cracked-SND

Eltima.Advanced.Serial.Port.Terminal.v6.0.382.cracked-SND 串口小工具,对软件开发比较有帮助

2018-09-13

NCrunch.3.18.0.2.for.Visual.Studio.2008-2017.Incl.Key

NCrunch.3.18.0.2.for.Visual.Studio.2008-2017.Incl.Key 好资源,用到的人不需要解释。 NCrunch_VS2008_3.18.0.2.msi NCrunch_VS2010_3.18.0.2.msi NCrunch_VS2012_3.18.0.2.msi NCrunch_VS2013_3.18.0.2.msi NCrunch_VS2015_3.18.0.2.msi NCrunch_VS2017_3.18.0.2.msi Readme.txt

2018-09-12

【VTT转换SRT工具】Vtt2Srt 1.0.0.0

使用教程 https://blog.csdn.net/zbbfb2001/article/details/79804382 在网上一直没找到VTT转成SRT的小工具,还是自己写个吧。方便自己方便他人。 这个小工具是用C#写的,目标电脑上需要已经安装了.Net Framework 4.5或者以上的版本。 在UI上选择一个文件夹目录,这个工具会自动把这个目录下(包括子目录)的所有VTT文件自动转化成SRT文件。这样方便影音播放软件自动加载字幕。 注:这是第一个版本,如果在使用过程中遇到什么问题,请回帖。我会升级更新。谢谢!

2018-09-12

Whole Tomato Visual Assist X 10.9.2118.0 破解版

非常好用的 Microsoft Visual Studio 插件,自动识别各种关键字,系统函数,成员变量,自动给出输入提示,自动更正大小写错误,自动标示错误,等等。在Visual Studio .NET 2005 中, 支持 C/C++, C#, ASP, Visual Basic, Java 及 HTML; 在 Visual C++ 6.0 and 5.0 中支持 C 和 C++ 的编程。

2017-02-19

PRO .NET Design Pattern Framework 4.5 (C#)

Welcome to the Design Pattern Framework TM 4.5, a unique package that will get you up to speed with .NET design patterns and practices.

2017-02-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除