自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (1)
  • 收藏
  • 关注

原创 【NET跨平台】4.对依赖注入容器的补充

上篇介绍了ASP.NET Core内置的依赖注入容器用法,现在对其作一些补充说明。

2024-02-26 15:55:35 672

原创 【NET跨平台】3.初识内置的依赖注入容器

该篇简单介绍.Net Core的依赖注入容器使用方式,后续会对其做补充说明

2024-02-23 13:59:37 452

原创 【NET跨平台】2.用命令创建项目

以下教程使用的版本为NET5,因为它将服务和中间件放在单独的Startup.cs文件,且类文件结构和以前的开发相似,实际开发可选择NET6或更高版本。注:在VSCode开发中sln文件并不是必须的,但仍然建议创建sln文件并结合VSCode的插件简化开发,且方便使用VS开发开发。虽然使用Visual Studio创建项目更简单,但为了清晰看到项目的搭建流程,以下会使用命令搭建整个项目结构。可以看到在NET5开发中命令通常是作用于.csproj文件的,因此需要注意命令所操作的目录。现在所需文件已经齐全了。

2024-02-22 17:02:19 461

原创 Windows系统更新后屏幕变黑只能看到鼠标问题解决

2.点击“文件-运行新任务-浏览”,找到火绒的卸载程序并运行(示例D:\Huorong\Sysdiag\uninst.exe)4.找到被隔离的explorer.exe,点击“恢复”,并勾选“将恢复的文件加入信任区”3.在火绒的卸载界面点击“卸载”,提示将清空隔离区的文件,此时点击“打开隔离区”5.重启电脑或直接找到C:\Windows\explorer.exe启动。1.按Ctrl+Alt+Del打开任务管理器。

2024-02-16 13:12:03 2793 2

原创 【NET跨平台】1.初步了解NET跨平台

在接触NET跨平台前,先简单感受一下新版NET的不同

2024-01-26 15:07:26 292

原创 浏览器导航被劫持解决方法

解决方法:找到浏览器启动程序.exe,重新生成快捷方式。原理:快捷方式被恶意劫持修改了打开时默认指向的地址,如桔梗导航。下图是快捷方式目标指向,就是跳转到桔梗导航的地址。

2022-04-18 11:22:22 818

原创 关于企业微信对接内部应用开发,access_token的管理机制和业务接口调用项目实战的八个要点

1.企业微信对接内部应用开发,基本上只能在获取到access_token后才能调用其他业务接口,因此access_token的管理非常重要,也是第一步要解决的问题。2.access_token的管理机制【不同于微信、公众号的token】。根本原因在于access_token只针对应用,而其他的token针对用户。显著的影响就是token的保存方式和代码与众不同。(钉钉对接内部应用开发用到的access_token同理)3.access_token的过期时间由企业微信控制。在大概2小时内从企业微信获取的a

2020-12-07 15:33:50 2777 1

原创 企业微信使用DevTools但显示为空白,解决方法

  跟其他文章提到的内容不一样,我将devtools_resources.pak拷贝到下一级文件夹里面就可以用了,附图:

2020-08-11 17:24:41 4102 1

原创 VSCode打开底部状态栏

1.按F1或者Ctrl+Shift+P2.输入View:Toggle Status Bar Visibility(中文版可以直接输入"状态栏"三字)3.Enter

2019-11-08 10:51:10 22810 4

原创 C#回顾学习笔记四十二:重写ToString()的意义

首先想到ToString(),可能就会认为是大家常用的转换成字符串的那个ToString()方法。实际上重写ToString()是另一个同名但功能不同的方法。代码如下:class Program { static void Main(string[] args) { int num=15; string s

2017-10-31 15:09:53 572

原创 C#回顾学习笔记四十一:在三层架构中使用事务

三层架构中处理事务1)为什么要特别强调如何在三层架构中处理事务?在讲解这个之前,先要熟悉三层架构是什么(UI层、BLL层、DAL层)。如果还不了解三层架构的话,可以先阅读前一篇文章:http://blog.csdn.net/privatehiroki/article/details/78120598在三层架构中,如果要同时对两个sql语句进行操作,比如需要增加两个用户的信息,而且保证必

2017-09-28 17:04:16 3062

原创 C#回顾学习笔记四十:三层架构

1)三层框架是什么?按照书籍和博客文章里千篇一律的解释就是:UI层、BLL层、DAL层。这样的解释通常无法让人一时半会理解含义,总而言之在这里先大概说明一下三层架构。正如其他文章提到的一样,三层架构就是:表示层(与用户直接进行交互)、业务逻辑层(在表示层和数据访问层中间联系两者的重要角色)、数据访问层(与数据库实打实的做交易,存取数据之类的)。所谓UI层实际上就是跟用户打交道的那一层,比如控制

2017-09-28 10:28:27 4295

原创 C#回顾学习笔记三十九:事务

事务的主要作用就是要么让任务全都执行成功,要么让任务全都执行失败。

2017-09-27 21:08:10 601 1

原创 C#回顾学习笔记三十八:ADO.NET的使用与总结

1.ADO.NET是什么?简单地讲,ADO.NET是用于和数据库打交道的.NET技术,是一组向.net程序员公开的数据库访问服务的类。ADO.NET提供了一个统一的编程模式和一组公用的类来进行任何类型的数据访问。ADO.NET是.NET中提供的标准访问数据库的接口,访问不同DBMS的底层方法不一样,ADO.NET把访问数据库的方法进行了统一,访问MySql、Oracle、SQLServer等不

2017-09-24 00:11:00 1322

原创 C#回顾学习笔记三十七:Hashtable哈希表的用法

1.Hashtable是什么?Hashtable通常也被称为哈希表。在哈希表类型的变量中,每一个元素都以键值对的格式保存,但必须保证键唯一、不能为空、不能重复,当然值可以为空。简单说哈希表就像一个字典,根据键查找到值。哈希表的泛型版本就是字典集合Dictionary。2.哈希表的特点有哪些?哈希表以键值对的形式保存值,而且支持任何类型的键和值。当然,这一特性也影响了哈希表的性能。因此建

2017-09-23 22:42:24 723 1

原创 C#回顾学习笔记三十六:字典集合Dictionary

1.字典集合是什么?字典集合本身像它名字那样通俗易懂,也就是“根据**查找出**”。字典集合的格式通常是:Dictionary dic = new Dictionary();Dictionary字典集合的格式有两个重要的部分,那就是键和值,并且键和值都可以任意设置一种类型。下面用一个练习来介绍字典集合的用法:class Program { static vo

2017-09-23 21:59:09 995

原创 C#回顾学习笔记三十五:泛型集合List

1.集合是什么?集合就是一些成员组合在一起的表现,但是跟数组有很大的差别,声明一个数组要指定初始长度,并且成员不能超过数组的最大长度,但一般使用集合类不用一开始就指定长度。2.泛型集合是什么?泛型集合不但具有集合的基本特性,而且还有一个重要的特点是在声明泛型集合对象时就必须指定要保存值的变量类型。声明泛型集合t的格式通常是List 对象名 = new List();,比如让泛型集合只能操作in

2017-09-23 21:28:24 486

原创 C#回顾学习笔记三十四:接口

1.接口是什么?接口是一种行业规范。比如程序员B扔给程序员A一个写好的接口文件,说:我写好了我们这个项目要用到的一些方法名字和注释,你参照注释去把这些方法实现一下。首先这是一个很负责的程序员B,然后程序员A拿到这个接口文件后,再去实现这个接口,就知道这个项目大概要用到什么方法,之后程序员A要做的就是用具体代码去实现这些方法。接口有很多跟抽象类相似的地方,这也使得程序员和面试官总喜欢讨论“抽象类和接

2017-09-23 18:08:35 431

原创 C#回顾学习笔记三十三:partial部分类

partial关键字,用来标记相同的类名。假设在项目中创建了一个Person.cs类,并标记partial关键字后,表示这个类是部分类,这时候再新建一个类比如Person2.cs(注意:因为类名在本地文件无法重名,这里只有这么做),在Person2.cs文件中,再将类名改成Person,并标记partial关键字,这样相当于一个Person类被拆成了两部分。详细代码:第1步,新建Person.

2017-09-23 14:19:27 686

原创 C#回顾学习笔记三十二:密封类和密封方法

密封类:密封类不允许被其他类继承。使用sealed修饰符就可以标记一个类是密封类,这样就可以防止该类被其他类继承。比如C#里系统预定好的String类就是密封类。通过“转到定义”可以发现String类被sealed修饰符标记。如图所示:密封类的知识点:1.被定义为sealed的类通常都是一些有着固定作用、完成某种标准功能的类。2.有时候定义密封类是为了提高性能,由于

2017-09-23 12:44:10 497

原创 C#回顾学习笔记三十一:抽象类与抽象方法

当父类中的方法不知道如何去实现的时候,可以考虑将父类写成抽象类,将方法写成抽象方法。抽象类和抽象方法的关系是一个抽象类下面包含一个或多个抽象方法。如何理解“父类中的方法不知道如何去实现”?比如现在让写出一个父类并提供一个“动物鸣叫”的方法,并让子类去继承这些类。表现在代码上就是:第1步,父类代码:class Animal { public void bark()

2017-09-23 10:17:54 367

原创 C#回顾学习笔记三十:虚方法的重写

如果想让父类的方法在子类中被重写,可以在父类的方法加上关键字abstract或virtual。在父类方法声明中加上关键字abstract称为抽象方法,在父类方法声明中加上关键字virtual被称为虚方法。在保证子类与父类的方法一样的情况下,子类中如果要重写方法,就加上关键字override。对父类的虚方法而言,其子类可以不必重写(被覆盖了)。虚方法的注意事项:虚方法定义中不能包含static、

2017-09-23 10:06:48 685

原创 C#回顾学习笔记二十九:new关键字隐藏父类的方法

如果在子类中定义了一个与父类完全相同的方法,则子类的方法就会隐藏父类的方法。编译时也会给出一个警告:要求在同名的派生类方法前加上关键字new。如图所示:参照警告的建议,尝试给子类方法加上关键字new后,警告消失。①父类代码如下:class Person { public void sayHello() { Co

2017-09-22 22:54:16 2541 1

原创 C#回顾学习笔记二十八:装箱和拆箱

装箱和拆箱的概念经常出现在面试题中。1.装箱:将值类型转换成引用类型。装箱使得任何值类型都可以隐式地转换为Object类型或者由该值类型实现的接口类型。比如:class Program { static void Main(string[] args) { int i = 12; object ob

2017-09-22 22:03:35 360

原创 C#回顾学习笔记二十七:using的两个作用

using的第一个被大众所知道的功能是引用命名空间。这使得代码的编写更加简单。比如using System;之后(系统默认了的),就可以不用再写看着很复杂的System.Console.WriteLine();了,有些类是属于某个命名空间的,如果不引用那个命名空间就使用类,那么代码上就要在类的前方加上命名空间,但引用命名空间后,代码就会变得更加简洁。using的第二个作用是自动释放资源。C#中

2017-09-22 17:32:32 533

原创 C#回顾学习笔记二十六:String与StringBuilder的区别

用string对字符串进行拼接似乎是一个很容易上手的技巧,只需要用加号链接两个字符串或者字符串类型变量,就可以实现两个字符串拼接,比如下面的程序:如上图所示,这样拼接字符串是很多人喜欢用的方式。实际上这样的拼接只适合小型程序或代码练习,因为这样的代码会影响到性能。每一次字符串的拼接都会产生一个字符串对象,这意味着str1+str2产生了一个字符串对象,而这个字符串对象又和str3相加差

2017-09-22 16:52:31 1194

原创 C#回顾学习笔记二十五:程序员必备技能,调试

编写代码免不了会出现各种错误,在运行时会发现不是抛异常就是执行结果跟预期结果有差异。这时候就需要思考如何去解决这个问题。首先应该清楚一点:代码都是从头开始,一句一句往下执行。程序员在发现代码有问题时,首先要想到的就是,这个错误可能发生在第几句代码。有经验的程序员找错误的位置很准,对于没有经验的程序员来说,可以从第一句代码开始检验错误。那么,如何检验错误?一、普通的按一下F11执行。平时

2017-09-22 14:43:24 857

原创 C#回顾学习笔记二十四:命名空间

从我们打开VS软件,打开控制台程序并开始写代码时,命名空间就开始在发挥作用了。在代码的最上方可以看到很多using语句,那就是引用了命名空间。引用命名空间的格式是:using 命名空间名字;这样就可以在程序中直接用命名空间的类型,而不必指定类型的详细命名空间。using System;通常都会出现在.cs格式的类文件里,来试一试如果删掉这一句using System;,然后我们再试一试用最简单的方

2017-09-22 13:38:37 395

原创 C#回顾学习笔记二十二:异常与try-catch的使用

假设有这么一段代码:class Program { static void Main(string[] args) { string s = "abc"; int num = Convert.ToInt32(s); Console.ReadKey(); } }

2017-09-22 12:39:28 1078

原创 C#回顾学习笔记二十一:面向对象的继承特征

面向对象有三大特征:封装、继承、多态。所谓的继承就是“子承父业”,父有的东西也会继承到子那里。表现在代码里就是:第1步,假如现在有一个Person.cs类:class Person    {        public string Name { get; set; }        public int age { get; set; }    }第2步,现在

2017-09-22 12:36:18 395

原创 C#回顾学习笔记二十:构造函数

1)构造函数的作用:帮助我们初始化对象(给对象的每个属性依次赋值)2)构造函数是一个特殊的方法,没有返回值,连void也不能写。构造函数的名称必须跟类名一样3)创建对象的时候会执行构造函数用类声明一个对象并对这个对象进行赋值似乎并不是很难,先来做一个练习第1步:新建一个Student.cs类,详细代码如下:class Student { public s

2017-09-22 12:23:07 374

原创 类和对象

为什么要使用类?引入类(Class)和对象(Object)的概念后的好处是:1.让代码变得更加干净彻底2.方便程序的开发,方便维护代码和修改代码。3.当然还有很重要的一点是,让程序员都可以读懂代码的意思。在讲类和对象的概念前,先来看看平时我们如何用代码统计学生各科成绩的总分:class Program { static void Main(strin

2017-09-21 15:46:41 482

原创 方法的重载

方法的重载指的就是方法的名称相同,但是参数不同。如果参数个数相同,那么参数的类型就不能相同,如果参数类型相同,那么参数的个数就不能相同。但要注意方法的重载跟返回值没有关系,所以有没有void都不用管。下面代码演示了如何使用重载:class Program { static void Main(string[] args) { te

2017-09-21 14:37:13 280

原创 out、ref和params参数

1)out参数如果在一个方法中,返回多个相同类型的值的时候,可以用一个数组,如果返回多个不同类型的值的时候,返回数组就不行了,这时候可以用out参数,out参数侧重于在一个方法中返回多个不同类型的值或者多个相同类型的值。一句话:out参数可以一次返回多个不同类型的值。2)ref参数能将一个变量带入一个方法中进行改变,改变完成后,再将改变后的值带出方法用ref的好处是不用再写返回值ref

2017-09-21 14:01:02 461

原创 数组的概念

先来说说一维数组的声明方式,比如一个int类型数组的声明方式是int[] nums = new int[5];这样的声明方式只是确定了数组的长度是5,此时nums数组内的5个值默认为0。如果要在声明数组时就给数组赋值,可以这么做:int[] nums = { 12, 21, 23, 15, 18 };这样在声明数组时就给数组的成员赋初值了。数组有什么作用?数组可以指定一种值的类型,

2017-09-21 12:21:32 342

原创 自定义方法与调用方法

方法还有个名字叫函数,有些不同于数学中的函数,这个函数可以是自定义名字,甚至自定义要实现的功能。本章就用“方法”来称呼吧。方法的声明方式是:访问修饰符 static 返回值类型 方法名(参数){ 方法体}方法必须定义在类的里面,并与其他方法处于同一阶层。访问修饰符可以不加,参数可以不加,static关键字在本次讲解中先必须加上,在之后的讲解中会解释static的作用。先来看看

2017-09-21 10:41:48 5364

原创 变量的作用域

变量的作用域是什么?变量的作用域指的是能够使用该变量的区域。作用域既作用于方法,也作用于变量。一个标识符的作用域是从声明该标识符的那个位置开始的,不管是变量还是方法都应如此。在C#中通常用“{”和“}”来界定变量的作用范围。变量的作用域有着严格的要求,在声明变量时需要时刻记住两点:①变量名不要重复②声明变量的位置很重要。先来看一个正常的例子:class Program {

2017-09-21 10:31:21 846

原创 C#中的三元表达式

格式:条件表达式1?表达式2:表达式3;条件表达式1如果为true,则返回表达式2的结果,否则返回表达式为3的结果class Program { static void Main(string[] args) { int a = 12; int b = 15; int c = ...

2017-09-21 10:28:31 2895

原创 while循环结构的用法

while循环跟for循环的相同之处在于:都是用于循环执行语句。不同之处在于:for循环更加清楚循环次数,而while循环则并不太关注循环次数,是否退出循环完全由自己定义好的bool表达式来判断。当然这并不是说限制了两个循环的使用条件,只要能完成功能,用任何循环都可以。while循环语句的结构是:while(!bool表达式){}比如这个例子:class Program

2017-09-21 10:18:17 974

原创 for循环的基本用法

for循环结构可以使得结构内的语句被重复执行,直到指定的表达式计算为false值就会跳出循环。for循环的结构通常是:for (变量初始化;条件表达式;计算表达式){ 语句;}比如这个代码:class Program { static void Main(string[] args) { for (int

2017-09-21 10:15:00 528

空空如也

空空如也

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

TA关注的人

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