Resharper快捷键使用
1: Alt+F7将你光标所在位置的变量的所有使用以列表的方式显示出来,显示结果的窗体可以像其他窗体那样停靠。
它的优点包括:
- 可以从所有使用中挑选只显示read usage或者write usage,有时我们只是想知道某个变量在哪里被改变了。找到的位置前的图标也告诉你这点。
- 可以在下方预览,即使我们列出所有使用,也不想跳转到每个使用它的地方,这时预览可以帮你大忙。
- 当你在代码编辑器中改动了某些使用时,比如删除了某行,那么在查找结果的窗体中,会用删除线表示出来。
- 默认的是寻找解决方案中所有的使用,并且按照命名空间来组织,非常便于选择。
我现在已经记不起来在没有Alt+F7之前我是怎么查找的。反正现在我几乎不怎么样Ctrl+F了,除非我忘记了某个变量的名字。如果是这样,多半这个名字需要refactor,那也是Resharper的另一大块功能所在。也许有人对这个功能嗤之以鼻,但是用过CAB的人都知道,订阅和发布某个事件的签名,完全是字符串,如果你不用搜索来找到它的话,你都不知道这个控件的鼠标点下去,到底有多少个处理程序在背后开始工作了。用了Alt+F7来搜索这个字符串,等于在查找背后所有的调用者。
不过提示你,当光标停留在一个类型上时,要慎用Alt+F7,假设是一个string,你应该能想象到得找到多少个使用
2:威力无比的Alt+Enter回车
万能的Alt+Enter能够帮你完成很多编写代码过程中的dirty work,总结起来大概是这么些:
- 帮你实现某个接口或抽象基类的方法;
- 提供你处理当前警告的一些建议;
- 为你提供处理当前错误的一些建议(不一定是真的错误);
- 为你简化当前的臃肿代码;
3: Ctrl + F11 当我们看别人的代码,或者是看自己的代码的时候,总是觉得代码太多,于是我们就用 region来把代码进行了封装注释,可是这样之后别人看代码就很郁闷,Resharper的 File Structure 功能,就可以把region和你的方法都展示出来。
说了这么多,其实就是把对象浏览器和region的长处结合起来,既可以清晰的分类,又能一目了然的找到需要的方法。Resharper这时帮上你的大忙了。用Ctrl+F11,就弹出一个像右边这样的窗口来。
这里面,按照你的region来显示,这样读你的代码的人也受益了。每个方法的参数,返回值都如UML一样列出来。
- 如果需要浏览到某个方法,直接双击它的名字;
- 如果要把某几个方法装进一个新的region,则可以选中方法,点工具栏上的像框的那个图标;点叉则会删除这个region并把相应的方法移到外面来。
- 如果要调整某个方法的位置,比如把它移到别的region里面去,只需要在这里拖动这个方法即可。
- 更可喜的是,你想要的从这里浏览、找到所有使用和重构的功能也在这里提供了,在某个方法上右键你就能开始操作。
4:重构才是王道(上)
重构是一种精神,证明你在致力于提供高效的、精炼的、健壮的代码,而不是凌乱的、晦涩的、漏洞百出的代码。
在Visual Studio 2005中,微软第一次提供了重构工具。但是不够,远远不够。我们需要的重构是非常广义的,我们想要对代码进行快速的调整,快到我在想什么我的工具就能做什么。这才是追求重构的境界。所以在这个意义上,几乎Resharper为你提供了巨大的生产力。
Visual Studio 2005提供的重构包括了如下:
- 封装字段
- 提取方法
- 提取接口
- 提升局部变量
- 移除参数
- 重命名
- 重新排列参数
这些方法在Resharper中全部都支持(但Resharper的重构远不止这些),它们对应的变成了:
- 封装字段 —— Introduce Field
- 提取方法 —— Extract Method
- 提取接口 —— Extract Interface (另增加了Extract Superclass提取为基类)
- 提升局部变量 —— Introduce Variable
- 移除参数 —— 移到Change Signature(改变方法签名)中
- 重命名 —— Rename (Resharper会根据对象的类型名称,提供你几个可选的最合适的名称)
- 重新排列参数 —— 移到Change Signature(改变方法签名)中
我知道很多人都声称自己E文不好,但是,这确实都是很简单的单词,难不倒任何人的。这些重构的功能是人所共知的,下面就告诉大家一些Resharper特有的,首先,重构的快捷键是Ctrl+Shift+R:
1、对于类,除了提取接口、基类,你还可以移动它到其他的命名空间和移动到别的文件里,这是一个实用的功能,也许你不信,但是我这真的有个人,把所有的business entity都写在一个DataObject.cs里面。你难以想象,我打开它时嘴张了多大。
2、对于字段,提供了:
- Safe Delete,会检测所有使用到的地方,并询问如何删除;
- Pull Member Up和Push Member Down,可以把这个字段在基类和继承类中移动;
- Use base type where possible,尽可能的使用基类,由于ArcGIS平台是基于com组件的,很多时候我们需要的是IGeometry, IPointCollection这样的接口所公开的属性或者方法,于是你没有必要保存一个polygon对象,而可以使用基类型;
- Encapsulate Field,封装字段,但是这个功能远没有另一个提供同样功能的操作有用。我可以在后文中来讲。
3、对于方法,提供了:
- 与字段类似的功能,此外;
- Change Signature,更改函数签名,包括更改名称,返回值类型,参数的各种信息,添加和删除参数,相当实用。如果你是在重写方法上操作,会提示你是否到基类中更改。
- Make Static,如果Resharper检测到这个方法并没有与非静态成员相关联的话,往往会自动地提示你(以黄色横杠的形式出现)可以改为static,如果你自作主张的对一些方法进行修改也无不妥,但后果自负。
- Extract class from parameter,如果你的参数有七个八个,那是否考虑用一个类来封装这些参数呢,于是这个功能应运而生。
- Method to Property,顾名思义,如果还在使用GetField()或者SetField(..)的话,你一定是从非.net星来的。
4、在方法体内部:
Extract Method,不用介绍了吧。
Introduce Variable/Parameter/Field,取决于你光标所在的对象,可以提供转化的功能。
Inline Variable:就是把:IPoint point = new PointClass();
point.PutCoords(_point.X, _point.Y);变成这样子:
new PointClass().PutCoords(_point.X, _point.Y); //这是个糟糕的例子
5、重命名:
为什么重命名值得挑出来讲,因为Resharper提供了命名建议这一金子般的功能。于是,想改名为易读性强的名字,不是那么费脑子的事情了。Resharper会根据这个变量的类型,为你提供几个备选名字,名字列表是列在光标位置上的(对方法重命名会弹出对话框),你只需要用方向键选择并敲回车即可,这种名字多是将类型的名字首字母改为小写得来的,甚至刨根到基类的类型名,你还可以在此基础上加以改进。如果你还在用i,j这种晦涩的名称,请迅速的把他们改为outIndex, pointCount之类可读的名称。
Resharper其实提供了更先进的功能,在你命名一个变量时,就有快捷键为你提供备选名字,但是Ctrl+Space是我们宝贵的输入法切换键,于是,我对变量名的敲定,往往是先起了一个较烂的,然后重命名的。
还有一些更广义上的,帮助你对代码进行调整的功能,我另写一篇吧,不然太长了。
重构才是王道(下)
插入代码
Resharper的Alt+Insert快捷键提供给你插入代码的功能。由于这两个键非常难按(这是我的感受),真正在使用的时候,我用的是Alt-R-C-G,意指打开Resharper菜单——Code——Generate,都只需要你的左手,这样你可以右手一边比划,一边还在写代码,多酷啊。
- 生成的代码中最常用的是构造函数和属性,当你没有私有字段的时候,只会生成一个空的默认构造函数,而且没有生成属性的功能。在你有私有字段的情况下,生成之前会让你选择哪些私有字段需要作为构造函数的参数,并生成初始化的代码,这样编写重载极其方便。生成属性也类似。
- 再次常用的就是重写基类或者接口的方法了。选择Implement Interface Member或者Override Inheritate Member,Resharper会查找当前类的基类或接口,然后按继承层次列出来,根据你的选择重写或实现这些方法。
- 不是太常用的是生成Equals和GetHashCode方法,在我的应用场景中很少重写它们。但是根据《.NET设计规范》,不管是值类型还是引用类型的Equals都建议重写,并且应该重写GetHaseCode方法,因为它们相互依赖。如果你有这个需求,那么生成这三个函数一定能够帮你的大忙。
包围代码
Visual Studio也提供了外侧代码这个功能,你可以按Ctrl+K,Ctrl+S来激活这个功能,虽然我并没有任何鄙视Visual Studio的意思,但是Resharper的快捷键确实更加合理(我在按下Ctrl的时候真的很难按下S),条目也更加清晰。Resharper中这个功能的快捷键是Ctrl+Alt+J,然后你就可以选择将当前行的代码包围到try-catch块或者using中了。这是很高效的方法,我们倾向于在开发的早期尽量不捕获异常,而在中后期才加入异常处理机制。于是你某一个时期有大量的工作是把他们扩到try-catch块中。而你要使用支持dispose对象时,最好的方法是使用using块。(卖蛋糕的,当我知道我的代码不是最优的时候,我总是寝食难安),这里自然也有把代码扩到region块中的功能,也是常用功能之一。
调整方法的位置
前面我曾说过,如果要调整方法的位置,可以在代码结构窗口中拖放操作。如果你觉得只是把一个方法移动到前面去,却不得不打开代码结构窗口太过重量级,那么有轻量级的方法:当光标位于方法的名称上时,用Ctrl+Shift+上下键就可以移动方法的位置,包括方法的xml注释,但如果你用的不是三个/的xml注释而是两个/的,那么就对不起了。
其他琐碎的功能
你肯定常常会复制粘贴当前行的代码,例如在使用StringBuilder.Append的时候,Ctrl+D可以简化你Ctrl+C,Ctrl+V的工作。
曾经有一个组合键可以注释掉当前行,还有另一个是取消注释,但是我已经淡忘了,因为Ctrl+/才应该是真正属于它的快捷键,再次按下就可以取消注释。
关于Resharper的重构功能就是这些,我可能天真地把很多额外功能都算在重构里了,但是它确实能够帮助你快速的对代码进行调整和优化。所以,请不要深究我对重构的概念认识是不是混乱。
增强的浏览功能
浏览参数的方式
输入方法的时候,我们已经习惯了由IDE提供给我们的参数提示,极大了方便了我们选择重载方法。在没有Resharper的环境下,Visual Studio已经做到了。那么为什么Resharper还要增强这个功能并大获好评的。试问,Visual Studio那窄窄的一行参数提示有没有让你觉得憋屈。我们有19寸的大屏幕,1600的分辨率,却不得不盯着那窄条条,小心翼翼的按着上下键寻找我们需要的重载。至少,开发Resharper的家伙是受不了这种憋屈的,于是大开大阖版的参数列表出现了,长长的参数重载被以列表的形式展现出来,当你在使用GDT+方法,看到巨大的参数重载时,你会从心底里发出感叹:卖蛋糕的。
同时,Resharper展示参数的快捷键变成了Ctrl+P,如果你觉得屏蔽了打印的快捷键简直是在开玩笑的话,那么问问你自己有多少次打印过自己的代码。
浏览打开过的文档
我窃以为你已经知道了在Visual Studio中切换文档的方式,它们包括:
Ctrl+Alt+上下方向键,可以在打开的文档中切换;
Ctrl+Tab,不仅可以在文档之前切换,并可以切换到解决方案文件夹,属性视图去,需要按左右键。
但是怎么样打开最近编辑后关闭的文件呢,Visual Studio很客气的又没有提供此功能,于是留给了Resharper。在我这里这个快捷键是Ctrl+E,Ctrl+E,没错,按两次。如果你的不是,那么在Resharper-View-Recent Files菜单下看看它是什么。因为你会时常用到。打开一个文件的列表,用方向键选择并回车就会在编辑器中打开。
很多人说Resharper的性能问题,我想,一个可能的原因是打开的文档太多了,如果你有时刻关闭不需要的文档的习惯,性能或许不会那么差,并且你可以随时打开这些你关闭了的文档,就像在已经打开的文档中切换一样的方便。
我的团队中没有用到敏捷开发那些高级的东西,但是我们还是保持着每次改动都仅涉及两三个文件的好习惯,并且频繁的commite到源代码服务器上去。所以,我每次真正要编辑的文件不多,性能不是问题。
和大家分享了很多Resharper使用的技巧,点点滴滴都已经融入我日常的开发工作中了。当然很不全面,例如与Nunit的集成,由于我们不是测试驱动,所以没有任何体验,自然也不敢大放厥词;也很主观,我觉得它好,你可能觉得它不好,萝卜青菜各有所爱。再说,它也不是没有白痴的地方,在文档上点右键增加的一个Close All功能,可以关闭所有打开的文档,关闭了干什么,对着一个空白的屏幕发呆么?我觉得原生的“除此之外全部关闭”就够了。还有一个定位的功能(Locate in Solution Explorer),真是没用,如果你在VS选项中设置了,在解决方案管理器中跟踪活动项,那么VS自动就给你定位了。
不管怎么说,它带给我更快更方便的开发体验,把我从一些琐碎的,不人性化的功能中解放出来。从这一点上来说,我很希望越来越多的人喜欢上它,开始用它,并帮助它更好的发展。
配置单个键盘快捷键
1、在主菜单上,选择Tools | Options
2、在导航视图中选择Environment | Keyboard
3、在命令列表中,选择启动ReSharper的命令名称。浏览列表以查看或者编辑ReSharper的特定操作的键盘快捷方式。
在键盘快捷方式间切换或者恢复到当前选定方案的默认状态
1、在主菜单上,选择ReSharper | Options
2、选择Environment | Keyboard and Menus
3、 在Keyboard and Menus选项卡上,选择 Visual Studio, ReSharper 2.x 或 IntelliJ IDEA或 None,点击Apply Scheme。如果你选择None,你可以在Visual Studio的本地选项菜单中定义任意一组自定义快捷键(Tools | Options | Environment | Keyboard) 。
完整的快捷键列表
代码分析(Code analysis)
Command | Shortcut (Visual Studio) |
Shortcut (IntelliJ IDEA/ReSharper 2.x) |
Toggle code analysis in the current file | Ctrl+Shift+Alt+8 | Ctrl+Shift+Alt+8 |
Go to next code issue (error, warning or suggestion) | Alt+PgDn | F12 |
Go to previous code issue (error, warning or suggestion) | Alt+PgUp | Shift+F12 |
Go to next error | Shift+Alt+PgDn | Alt+F12 |
Go to next error in solution | Shift+Alt+PgDn | Alt+F12 |
Go to previous error | Shift+Alt+PgUp | Shift+Alt+F12 |
Go to previous error in solution | Shift+Alt+PgUp | Shift+Alt+F12 |
Inspect this | Ctrl+Shift+Alt+A | Ctrl+Shift+Alt+A |
View type hierarchy | Ctrl+E,H | Ctrl+Alt+H |
Inspection Results window | Ctrl+Alt+V | Ctrl+Alt+V |
编码援助(Coding assistance)
Command | Shortcut (Visual Studio) |
Shortcut (IntelliJ IDEA/ReSharper 2.x) |
Show action list | Ctrl+R,W | Ctrl+R,W |
Paste multiple | Ctrl+Shift+V | |
Code cleanup | Ctrl+E,C | Ctrl+Alt+F |
Silent code cleanup | Ctrl+E,F | Ctrl+Shift+Alt+F |
Symbol code completion | Ctrl+Space | Ctrl+Space |
Smart code completion | Ctrl+Alt+Space | Ctrl+Shift+Space |
Import symbol completion | Shift+Alt+Space | Ctrl+Alt+Space |
Complete statement | Ctrl+Shift+Enter | Ctrl+Shift+Enter |
Parameter information | Ctrl+Shift+Space | Ctrl+P |
Quick documentation | Ctrl+Shift+F1 | Ctrl+Q |
Insert live template | Ctrl+E,L | Ctrl+J |
Surround with template | Ctrl+E,U | Ctrl+Alt+J |
Create file from template | Ctrl+Alt+Insert | Ctrl+Alt+Insert |
Generate code | Alt+Insert | Alt+Insert |
Move code up | Ctrl+Shift+Alt+Up | Ctrl+Shift+Alt+Up |
Move code down | Ctrl+Shift+Alt+Down | Ctrl+Shift+Alt+Down |
Move code left | Ctrl+Shift+Alt+Left | Ctrl+Shift+Alt+Left |
Move code right | Ctrl+Shift+Alt+Right | Ctrl+Shift+Alt+Right |
Extend selection | Ctrl+Alt+Right | Ctrl+W |
Shrink selection | Ctrl+Alt+Left | Ctrl+Shift+W |
Select containing declaration | Ctrl+Shift+[ | Ctrl+Shift+[ |
Duplicate a line or selection | Ctrl+D | Ctrl+D |
Comment with line comment | Ctrl+Alt+/ | Ctrl+/ |
Comment with block comment | Ctrl+Shift+/ | Ctrl+Shift+/ |
导航和搜索(Navigation and search)
Command | Shortcut (Visual Studio) |
Shortcut (IntelliJ IDEA/ReSharper 2.x) |
Go to type | Ctrl+T | Ctrl+N |
Go To File | Ctrl+Shift+T | Ctrl+Shift+N |
Go to file member | Alt+\ | Ctrl+F12 |
Go to symbol | Shift+Alt+T | Ctrl+Shift+Alt+N |
Navigate To | Alt+` | Ctrl+Shift+G |
Go to type of symbol | Ctrl+Shift+F11 | Ctrl+Shift+T |
Go to declaration | F12 | Ctrl+B |
Go to implementation | Ctrl+F12 | Ctrl+Shift+Alt+B |
Go to base symbols | Alt+Home | Ctrl+U |
Go to derived symbols | Alt+End | Ctrl+Alt+B |
Go to usage | Shift+Alt+F12 | Ctrl+Alt+F7 |
Go to containing declaration | Ctrl+[ | Ctrl+[ |
Go to next member/tag | Alt+Down | Alt+Down |
Go to previous member/tag | Alt+Up | Alt+Up |
Find usages | Shift+F12 | Alt+F7 |
Find usages (advanced) | Ctrl+Shift+Alt+F12 | Shift+Alt+F7 |
Highlight usages in file | Shift+Alt+F11 | Ctrl+Shift+F7 |
Go to previous usage | Ctrl+Alt+PgUp | Ctrl+Alt+Up |
Go to next usage | Ctrl+Alt+PgDn | Ctrl+Alt+Down |
Remove highlighting of usages | Esc | Esc |
View recent files | Ctrl+, | Ctrl+E |
View recent edits | Ctrl+Shift+, | Ctrl+Shift+Alt+Backspace |
Go to previous edit | Ctrl+Shift+Backspace | Ctrl+Shift+Backspace |
Go to related files | Ctrl+Alt+F7 | Ctrl+Shift+Alt+G |
View bookmarks | Ctrl+` | Ctrl+` |
Go to a numbered bookmark | Ctrl+[numeric key] | Ctrl+[numeric key] |
Set/remove a numbered bookmark | Ctrl+Shift+[numeric key] | Ctrl+Shift+[numeric key] |
Find Results window | Ctrl+Alt+F12 | Ctrl+Alt+U |
File structure | Ctrl+Alt+F | Ctrl+F11 |
To-do items | Ctrl+Alt+D | |
Stack Trace Explorer | Ctrl+E,T | Ctrl+Shift+E |
Locate in Solution Explorer | Shift+Alt+L | Shift+Alt+L |
Analyze references | Shift+Alt+Y | Shift+Alt+Y |
重构(Refactorings)
Command | Shortcut (Visual Studio) |
Shortcut (IntelliJ IDEA/ReSharper 2.x) |
Refactor this | Ctrl+Shift+R | Ctrl+Shift+R |
Rename | Ctrl+R,R | F2 or Shift+F6 |
Move | Ctrl+R,O | F6 |
Safe delete | Ctrl+R,D or Alt+Del | Alt+Del |
Extract method | Ctrl+R,M | Ctrl+Alt+M |
Introduce variable | Ctrl+R,V | Ctrl+Alt+V |
Introduce field | Ctrl+R,F | Ctrl+Alt+D |
Introduce parameter | Ctrl+R,P | Ctrl+Alt+P |
Inline variable/method/field | Ctrl+R,I | Ctrl+Alt+N |
Encapsulate field | Ctrl+R,E | Ctrl+R,E |
Change signature | Ctrl+R,S | Ctrl+F6 |
单元测试(Unit testing)
Command | Shortcut (Visual Studio) |
Shortcut (IntelliJ IDEA/ReSharper 2.x) |
Run unit tests | Ctrl+U,R | Ctrl+T,R |
Debug unit tests | Ctrl+U,D | Ctrl+T,D |
Run all tests in solution | Ctrl+U,L | Ctrl+T,L |
Run current test session | Ctrl+U,Y | Ctrl+T,Y |
Repeat previous test run | Ctrl+U,Y | Ctrl+T,Y |
Append to test session | Ctrl+U,A | Ctrl+T,A |
Create new test session | Ctrl+U,N | Ctrl+T,N |
Unit Test Explorer | Ctrl+Alt+U | Ctrl+Alt+T |
Unit Test Sessions | Ctrl+Alt+T | Ctrl+Alt+R |
工具窗口(Tool windows)
Command | Shortcut (Visual Studio) |
Shortcut (IntelliJ IDEA/ReSharper 2.x) |
File structure | Ctrl+Alt+F | Ctrl+F11 |
Find Results window | Ctrl+Alt+F12 | Ctrl+Alt+U |
Hierarchies window | Ctrl+Alt+H | |
Inspection Results window | Ctrl+Alt+V | Ctrl+Alt+V |
Stack Trace Explorer | Ctrl+E,T | Ctrl+Shift+E |
Templates Explorer window | Alt+R,P | Alt+R,P |
To-do items | Ctrl+Alt+D | |
Unit Test Explorer | Ctrl+Alt+U | Ctrl+Alt+T |
Unit Test Sessions | Ctrl+Alt+T | Ctrl+Alt+R |
Close recent tool | Ctrl+Shift+F4 | Ctrl+Shift+F4 |
Activate recent tool | Ctrl+Alt+Backspace | Ctrl+Alt+Backspace |
Resharper快捷键使用的更多相关文章
- 解决VS2013/VS2010简体中文版无法使用ReSharper快捷键的问题
对于简体中文版VS2013,若应用ReSharper快捷键失效,按下面方法修复: 1) 首先在ReSharper设置里,应用你的快捷键设置 2) 关闭VS2013,然后用记事本打开“%LOCALAPP ...
- Resharper快捷键
建议你使用 Reshaper 的快捷键,不要担心 Reshaper 会把你原来的快捷键设置给覆盖了,因为如果某个快捷键和 VS 是冲突的,Reshaper会让你自己选择需要使用 VS 还是 Resha ...
- 配置VS代码生成工具ReSharper快捷键
VS代码生成工具ReSharper提供了丰富的快捷键,可以极大地提高你的开发效率.安装ReSharper后首次启动Visual Studio时,会出现一个名为ReSharper Keyboard Sc ...
- 每个人都应该知晓的8项Resharper快捷键
(此文章同时发表在本人微信公众号“dotNET每日精华文章”) 如果你已经在用Resharper这个编程神器(机器杀手)的话,那么为了进一步提高工作效率熟悉它的一些特殊特性和快捷键那是必须的. Res ...
- Resharper快捷键及用法
建议你使用 Reshaper 的快捷键,不要担心 Reshaper 会把你原来的快捷键设置给覆盖了,因为如果某个快捷键和 VS 是冲突的,Reshaper会让你自己选择需要使用 VS 还是 Resha ...
- 最全的Resharper快捷键汇总
编辑Ctrl + Space 代码完成 Ctrl + Shift + Space代码完成Ctrl + Alt + Space代码完成Ctrl + P 显示参数信息Alt + Insert 生成构造函数 ...
- Resharper快捷键汇总
编辑Ctrl + Space 代码完成 Ctrl + Shift + Space代码完成Ctrl + Alt + Space代码完成Ctrl + P 显示参数信息Alt + Insert 生成构造函数 ...
- Resharper 快捷键
编辑 Ctrl + Space 代码完成 Ctrl + Shift + Space代码完成 Ctrl + Alt + Space代码完成 Ctrl + P 显示参数信息 Alt + Insert ...
- 工具-VS插件Resharper快捷键
编辑Ctrl + Space 代码完成 Ctrl + Shift + Space代码完成Ctrl + Alt + Space代码完成Ctrl + P 显示参数信息Alt + Insert 生成构造函数 ...
随机推荐
- VSCode(主进程)
Overview(总览) SETUP(设定) Overview(总览) Linux(略) macOS(略) Windows 使用WSL,您可以在Windows上安装和运行Linux发行版.这使您能够在 ...
- java学习心得2
首先是一个生成随机数的算法 这里就需要设置种子x0,种子设置好之后就设置a,c,m,这里mod用于取余,我自己写的是这样的 这个程序可生成1000个随机数,这种随机数的生成是有上限的,可以保证在一定数 ...
- SpringBoot初学(4)– JdbcTemplate和Mybatis
前言 github: https://github.com/vergilyn/SpringBootDemo 代码位置: 一.Spring Boot集成JdbcTemplate或NamedParamet ...
- 嵊州D5T3 指令 program 神奇的位运算
指令 program [问题描述] krydom 有一个神奇的机器. 一开始,可以往机器里输入若干条指令: opt x 其中,opt 是 & | ^ 中的一种,0 ≤ x ≤ 1023 . 对 ...
- 汇编语言中LABEL伪指令的功能?
LABEL 一般用作定义变量和标号的属性,它是与紧接着的下一条变量和标号定义语句相关的,其类型可以为BYTE.WORD.DWORD.QWORD.NEAR.FAR等等.用法为:buffer(变量) LA ...
- 使用Dockerfile构建镜像命令自己的理解
1.FROM 基于那个基础命令开始构建镜像,我的理解就是选择一个操作系统 2.CMD 里面放的是指定一个容器启动时要运行的命令 3.ENTRYPOINT 类似于CDM命令,不过 docker run ...
- LeetCode 160. 相交链表 (找出两个链表的公共结点)
题目链接:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/ 编写一个程序,找到两个单链表相交的起始节点. 如下面的两 ...
- 视频格式转换mp4
第一步:https://ffmpeg.zeranoe.com/builds/下载ffmpeg 或者:百度云下载: 链接:https://pan.baidu.com/s/1x_QogbV8xFjkYTe ...
- sublime text 3安装html-css-js prettify后使用时报错An unhandled OS error was encountered
我在安装代码格式整理插件 html-css-js prettify 后,在使用时弹出报错提示如下图 意思大概是node.js什么路径没配置对,对于开始下载sublime text 3使用到各种插件的安 ...
- CSS之 元素显示隐藏,用户界面样式,文本溢出隐藏,精灵技术,三角形
元素的显示与隐藏 display 显示 display 设置或检索对象是否及如何显示 display: none; 隐藏对象 display: block; 除了转换为块级元素, 同时还有显示元素的意 ...