摘要:
Ftp即文件传输协议,说白了就是处理文件操作的。可能你还听说过Ftps、SFtp,简单说一下他们的区别吧 Ftps:可以理解为Ftp+Ssl,Ftp与Ftps的关系就类似Http和Https的关系 SFtp:可以理解为Ftp+SSH 总之,可以理解为Ftp就是明文传输,Ftps、SFtp采用了加密传 阅读全文
摘要:
如果是Windows下,我们一般使用IIS来部署一套Ftp,如果是Linux下,个人一般使用Vsftpd来搭建一套Ftp。 至于什么是Ftp,就不介绍了,本文就Ubuntu下安装配置Vsftpd,CentOS其实差不多,所以这里就当做笔记了 安装 Ubuntu下安装Vsftpd很简单,使用apt安装 阅读全文
摘要:
最近有朋友吐槽CSDN连个框选代码、复制功能都要登录才能使用,之前也有听到过类似的吐槽,这对于很多面向百度开发的程序员并不友好,于是想了个办法。 以CSDN为例,当需要复制CSDN上的内容是,可以先在开发者工具的控制台中输入下面的代码执行一遍,就可以使用框选复制了: document.querySe 阅读全文
摘要:
using一般有两个作用: 1、作为语句,用于定义一个范围,在此范围的末尾将释放对象(IDisposable和IAsyncDisposable接口) 2、作为指令,用于引入命名空间或者类型,或者为引入的命名空间或者类型定义别名 using语句 using语句应该都很熟悉了吧,从最早的ADO.net, 阅读全文
摘要:
最近在部署一套ActiveMQ集群时,使用zookeeper来实现,zookeeper启动了,在启动ActiveMQ时,抛出异常: WARN | Session 0x0 for server 10.1.21.244/<unresolved>:2181, unexpected error, closi 阅读全文
摘要:
使用vue-router时,在刷新页面时往往会出现这个警告: 这个问题产生的原因往往是因为vue在启动时,会校验当前页面的路由,而我们使用vue-router时,是在导航守卫中动态添加路由的,因此肯定找不到,而这个时候还没进入守卫,自然就会抛出这个警告了: 1、app.use(router) 2、r 阅读全文
摘要:
元组 元组提供了一种轻量级的方式,允许我们从一个方法中返回多个数据,而不需要自定义类或者使用out、ref等关键字,如: public Tuple<int, string> GetTuple() { return new Tuple<int, string>(200, "OK"); } 上面是C#7 阅读全文
摘要:
接前上一篇:平台调用 (P/Invoke):DllImport特性说明 首先,我们知道C#和C/C++都是跨平台的,但是原理上他们是不一样的: C#首先编译成一种中间语言(IL)的程序集,然后将这种程序集放到不同平台下的解释器里面去执行,这就是说一次编译到处运行 C/C++是针对不同的平台直接编译, 阅读全文
摘要:
接上一篇:平台调用 (P/Invoke):托管代码(C#)调用非托管代码(C/C++) 上一篇实现了C#代码以三种方式调用C/C++的非托管代码,核心是DllImportAttribute特性的使用 DllImportAttribute指示某个静态方法的入口在非托管动态链接库中 用我们面向对象的思想 阅读全文
摘要:
首先,本文基于.net6来实现C#代码来调用C/C++程序(VS2022),主要从三个角度来说明:简单的调用实现、自定义类和结构体、回调函数。 其次,C#调用C/C++一般是通过调用C/C++的动态连接库来实现的,而windows和linux、macos下的动态链接库是有区别的,后面再说,所以本文以 阅读全文
摘要:
从C#7.0开始,推出了一种新的特性:弃元,这种思想可能来源于Golang。 弃元,就是不想要了的元素变量,用单下划线(_)表示,弃元在编译时起作用,就是搞编译器:这个变量我不要,你可以优化处理。 我们经常在下面几个过程中使用弃元: 1、元组解构赋值 在使用元组解构赋值时,我们往往需要接收元组的所有 阅读全文
摘要:
C#从7.0开始,陆陆续续推出了各种模式匹配,模式是一种特殊的表达式,通过判断给定的值是否满足此表达式而返回true或者false,它就类似于正则表达式的作用。 目前(C#10),可以使用模式匹配的地方有三个: 1、is表达式,从C#7.0开始,is表达式的右边不在只是一个类型,而是一个模式,具体例 阅读全文
摘要:
switch-case语句经常被认为是if-else语句的替代品,但是在众多程序语言中还是能见到switch的存在,这很大程度上是因为switch更实用,这一点在C#中更能提现。 简单的语法就不说了,一个简单的switch用法: switch (cmd) { case "start": Consol 阅读全文
摘要:
is运算符 is在C#7.0之前,主要用于检验实例是否是指定的类型,格式: expr is type expr是一个具有值的表达式,type是一个类型。 从C#7.0开始,is表达式将使用模式匹配来操作,格式: expr is pattern expr是一个具有值的表达式,pattern是模式匹配, 阅读全文
摘要:
接上一篇,上一篇提供了一种手动清理keep-alive组件缓存的一个解决方案,但是要求在非production或者启用devtools的情况下才生效,所以不实用。 在仔细读了源码之后,还是没有一个好的办法,上github的上查看issue,发现很多人都提出了这个问题,但是vue的作者就是不愿意解决, 阅读全文