自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 git处理换行符core.autocrlf

背景文本文件所使用的换行符,在不同的系统平台上是不一样的。UNIX/Linux 使用的是 0x0A(LF)早期的 Mac OS 使用的是 0x0D(CR),后来的 OS X 在更换内核后与 UNIX 保持一致了。DOS/Windows 一直使用 0x0D0A(CRLF) 作为换行符。跨平台协作开发是常有的,不统一的换行符确实对跨平台的文件交换带来了麻烦。最大的问题是,在不同平台上,换行符发生改变时,Git 会认为整个文件被修改,这就造成我们没法 diff,不能正确反映本次的修改。还好 Git 在

2021-07-23 19:25:20 1117

原创 mac安装多个java时的环境配置

背景mac自带java8已经下载了java11现在项目中需要使用java6安装apple support提供的java6(Java for OS X)时发现由于本级已经自带了1.8的java os x,导致现在无法安装1.6卸载了自带的1.8后仍然无法安装于是再一次安装了java8一开始安装的java11无法运行java6的代码java8可以运行java6的代码配置环境变量查看已安装的java/usr/libexec/java_home -V可见现在一共安装了两个java:jav

2021-07-23 19:07:54 312

原创 vim使用

简介vim有三种模式Command modeInsert modeLast line modeCommand mode用户一启动vim就进入了命令模式。此状态下敲击键盘动作会被vim识别为命令常用命令:i 切换到输入模式: 切换到底线命令模式x 删除当前光标所在处的字符Insert mode常用命令:esc 退出输入模式,切换到命令模式Last line mode常用命令:w 保存文件q 退出程序参考资料菜鸟教程...

2021-07-23 19:06:47 140

原创 Agile Principles, Ptterns, and Practices in C#

Agile Principles, Ptterns, and Practicesin c#Requirements《敏捷软件开发:原则、模式与实践》敏捷开发S.O.L.I.D原则单一职责原则(SRP)开放-封闭原则(OCP)Liskov替换原则(LSP)避免违反LSP的方法:接口隔离原则(ISP)分离接口依赖倒置原则(DIP)接口所有权的倒置Requirements总结可以遵循的物理设计规则《敏捷软件开发:原则、模式与实践》敏捷开发敏捷开发是一个过程,而不是一个事件。它是一个持续的应用原则、模式

2021-05-18 12:11:27 184

原创 Sourcetree从All Branches切换到Current Branch时报错:Error Encountered

如果该分支还没有远端分支,则当从All Branches切换到Current Branch时会报错:Error Encountered;解决方法就是把当前分支 push 到远端,再切换就不会报错了。

2021-04-28 16:32:02 142

原创 在 Visual Studio 上新建一个项目

在 BitBucket 上新建一个仓库;(有无都可)打开 Visual Studio,选择 Create a new project语言选择 C#,搜索栏搜索 Winform,选择Windows Form App;选择刚建的仓库作为存放位置,给解决方案和项目分别命名(如果不给解决方案起名,则会自动将项目名作为解决方案的名字)完成Note:解决方案(solution)只是 Visual Studio 用来组织一个或多个相关项目的容器。 在 Visual Studio 中..

2021-04-17 17:06:26 605

原创 C# Winform PictureBox 的 OnPaint 方法

PictureBox 的 OnPaint 方法继承自 Control。当调用 Refresh 方法(同样继承自 Control)时, 会自动调用 OnPaint 方法,所以不需要在 designer.cs文件中添加这一事件。

2021-04-17 16:50:03 1574 1

原创 C# Graphics Class

要想使用Graphics类,则必须有PaintEventArgs对象。例如:protected override void OnPaint(PaintEventArgs pe) { Graphics g = pe.Graphics; g.FillEllipse(GardenPictureBox.__brush, 5, 5, 150, 150); if (this.__garden != null)

2021-04-17 16:28:58 95

原创 变量的三种类型:storage, Reference and Context.

一个变量有如下三种属性:Stroage, Reference and Context。当在编写一段逻辑时需要使用某个变量,需要先想清楚它的属性,根据属性的类型决定怎样使用这个变量。这样会使得这段逻辑更加通顺。下面对这三种属性分别进行解释:Storage:...

2021-04-01 21:27:21 2623

原创 TypeScript中的typeof

Typescript的typeof是一种类型保护,但是它只能返回以下值:“string”“number”“bigint”“boolean”“symbol”“undefined”“object”“function”例如:const str:string = "abc";typeof str === "string"; // Trueconst date:Date = new Date();typeof date === "Date"; // False参考资料:TypeS

2021-03-29 16:58:59 1873

原创 TypeScript 类型断言&类型保护

目录类型断言含义语法一:尖括号语法二:as与类型转换的区别类型保护功能实现一:typeof实现二: instanceof实现三: in实现四:字面量类型保护实现五:自定义的类型保护 & 类型谓词参考资料类型断言含义TypeScript 允许你覆盖它的推断,并且能以你任何你想要的方式分析它,这种机制被称为「类型断言」。语法一:尖括号let foo: any;let bar = <string>foo; // 现在 bar 的类型是 'string'语法二:aslet fo

2020-12-11 12:21:17 321

原创 Radial Gradients in SVG and Canvas

目录Radial Gradients in SVG注:radial gradient 中的 color-stop 与linear gradient中的color-stop类似,在这里不予说明。Radial Gradients in SVGThe radial gradient is defined by two points: center point and focal point.Center point describes a circle around which the gradient

2020-12-11 10:00:24 119 1

原创 C#的继承&多态

000000000000000000

2020-12-08 19:28:13 215

原创 .gitignore忽略文件路径规则 & VS项目.gitignore模板

写目录自定义要忽略文件的路径的规则.gitignore for Visual Studio Projects and Solutions参考资料自定义要忽略文件的路径的规则prj所有名字是prj的文件和文件夹都忽略了,不管其目录的相对位置在哪/prj开头的/,只是指定根目录,不管prj是文件夹还是文件,都是忽略的。prj/只把根目录下的prj文件夹里的所有忽略掉了。那和/prj/*有区别吗?没有!如果想把prj文件夹大多数文件都忽略,只有小部分文件不想忽略,就需要这个通配符了。并在后面添加

2020-11-24 19:05:57 2371

原创 C#继承自基本控件的自定义控件

目录举例参考资料举例创建一个名叫HiTextBox的控件对象,它继承自基本控件TextBox,而不是UserControl。它的功能是:当按下Tab键将焦点移动到控件里时,可以高亮里面的文本(即选中该文本)。步骤如下:在一个已建好的项目中,用 Project / Add UserControl添加HiTextBox对象在HiTextBox.cs中将HiTextBox改为继承TextBox在HiTextBox.Designer.cs中注释掉下面两句在HiTextBox.cs中添加其他代码

2020-11-17 20:37:55 907

原创 C# WinFormApp TextBox添加失焦事件LostFocus

There is no LostFocus event for textbox in property Window,if you want to use this then you must need to add event handler. For example, there is textbox onLostFocus event in property window, that could be used as below:private void textBox1_onLostFocus(o

2020-10-29 15:59:41 1144 1

原创 实现javaScript 正则表达式的反向预查

目录BUG解决方法解法一:解法二参考资料BUG工作时时写了一个正则表达式匹配字符串首尾没有被转移的空格,测试时发现在IE浏览器中会报错,在Chrome中正常。正则表达式如下:const spaceReg = /(^(\s+))|((?<!\\)(\s+)$)/g;查资料后发现是因为JavaScript语言的正则表达式不能支持所有的正则表达式。支持的有:名称字符正向肯定预查( look ahead positive assert )(?=pattern)正向否定

2020-10-22 17:13:48 828

原创 sourcetree中merge前没有解决冲突导致后续文件出现问题的解决方法

记录今天在工作中遇到的一次问题今天在把本地分支merge进develop时忘记解决冲突直接提交了,并且推送到了远端。之后又在该分支上进行了很多次修改与提交,最终导致文件内容的不一致(因为冲突被保留下来了)。姑且把这个分支名叫做2458解决方法:对2458进行两次备份,分别叫做2458-01和2458-02,它们所在的位置即是最终修改到的地方。在2458分支上,将2458reset到忘记解决冲突的那次merge的位置(HARD)。HARD reset会删除两次提交间所做的修改在01分支上,也re

2020-10-16 19:46:50 689

原创 在Chrome DevTools中测试函数性能的方法

F12打开DevTools点击Tool bar上的Performance点击页面中间的record圆点点击站点chart旁的刷新键当新chart被画出来时,点击DevTools页面上的stop键得到性能分析的结果可以利用Bottom-Up中的filter寻找要比对的函数,再看Summary中的结果...

2020-09-09 19:48:05 229

原创 一次性生成大批量json数据

使用在线工具: JSON GENERATOR示例图如下:参考资料:https://zhuanlan.zhihu.com/p/35955568

2020-09-09 19:44:17 2091

原创 TS:在对象中定义一个方法

var myObj = { myMethod: function(params) { // ...do something } // 或者 这样写也可以 myOtherMethod(params) { // ...do something else }};参考资料:TS官方文档

2020-09-09 09:28:58 3620

原创 TypeScript error TS2449: Class ‘x‘ used before its declaration

在我的项目中,解决办法是在class x 内部构建一个其本身的静态变量供外部使用,如下export class SyntaxEngine { public static readonly defaultSyntaxEngine = new SyntaxEngine();}其他情况下可能会有不同的解决办法。...

2020-09-09 09:24:14 941

原创 “file cannot be loaded because running scripts is disabled on this system gulp” Code Answer

工作时,在搭建项目环境安装gulp时遇到了题目中的问题,解决方法如下:在git bash命令行下输入下面两行代码Set-ExecutionPolicy -ExecutionPolicy RemoteSignedSet-ExecutionPolicy Unrestricted参考资料

2020-08-20 14:09:28 236

原创 利用JS原生日期对象获取两位数的年份

JS原生日期对象的年份值以1900年为起始,如下所示:let date1 = new Date(1,0,1);date1.getFullYear();// 1901let date2 = new Date(1901,0,1);date2.getFullYear();// 1901所以如果想要获取真正的两位数年份需要进行额外计算,具体方法如下例所示:// 计算时间戳let ms100 = new Date(100,0,1).valueOf(); // -59011488343000le

2020-08-19 10:36:36 1209

空空如也

空空如也

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

TA关注的人

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