自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 最通俗易懂C#和.NET生成表格Excel NPOI

/向打开的这个xls文件中写入mySheet表并保存。//向打开的这个xls文件中写入mySheet表并保存。//打开xls文件,如没有则建立,如存在则在建立是不要打开该文件。//打开xls文件,如没有则建立,如存在则在建立是不要打开该文件。Console.WriteLine("生成成功");Console.WriteLine("生成成功");//模拟20行20列数据。

2023-12-25 14:42:55 113

原创 正则表达式的使用,验证邮箱,IP,和替换字符串

正则表达式的使用,验证邮箱,IP,和替换字符串。

2023-08-28 16:28:05 102

原创 C#栈和堆

栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。然后代码执行到方法时,查找栈中放该堆首部地址的所有参数,并通过堆的首部地址来控制堆。而堆是无序的,他是一片不连续的内存域,有用户自己来控制和释放,如果用户自己不释放的话,当内存达到一定的特定值时,通过垃圾回收器(GC)来回收。存放在栈中时要管存储顺序,保持着先进后出的原则,他是一片连续的内存域,有系统自动分配和维护。引用类型总是存放在堆中。

2023-08-16 07:55:33 79

原创 C#前台线程和后台线程的区别

后台线程不会使托管的程序处于运行的状态,也就是说,如果进程停止所有前台线程,那么系统会认为,此时进程处于非运行的状态,会将所有的后台线程关闭。

2023-08-10 17:11:39 209

原创 C#窗体程序运行时间显示及线程的使用和MethodInvoker

【代码】C#窗体程序运行时间显示及线程的使用和MethodInvoker。

2023-08-10 17:03:49 352

原创 WebAPI创建使用

给一个地址返回一些数据,就是WebAPI、WeatherForecast在我们的项目中只是一个普通的类。创建ASP.NET Core Web API项目。

2023-08-09 09:54:09 39

原创 ASP.NET全部教程

Razor 是一种将基于服务器的代码添加到网页中的标记语法Razor 具有传统 ASP.NET 标记的功能,但更容易使用并且更容易学习Razor 是一种服务器端标记语法,与 ASP 和 PHP 很像Razor 支持 C# 和 Visual Basic 编程语言。

2023-08-05 16:54:49 850

原创 ASP.NET.Core项目目录结构作用

Startup.cs Startup.cs: .NET Core应用程序启动配置项目文件,在.NET Core CLI命令行工具或者Visual Studio为我们创建好ASP.NET Core应用程序之后,程序入口文件Program.cs会默认调用Startup.cs类中的ConfigureServices 和 Configure 方法,以初始化程序的各种配置。否则会转换为纯 C#。_ViewImports.cshtml 用于导入项目或者子视图文件夹中的默认资源,以方便统一维护和管理等。

2023-08-05 16:53:41 127

原创 C#委托和XML以及匿名函数和lamda表达式对比

将一个方法作为参数传递给另一个方法,方法的类型是委托类型。委托所指向的函数必须和委托具有相同的签名。类型用T代替,T就是type类型的缩写。委托可以指向多个函数,执行时同时执行。object需要装箱拆箱,用T替代。把Form1的方法传递给Form2。可扩展标记语言,xml存储数据。+=就是再绑定一个函数给委托。-=就是把绑定好的函数给删除。xml严格区分大小写。签名就是参数和返回值。需要使用委托进行传值。

2023-08-05 16:38:39 32

原创 C#常用快捷键及开发技巧

ctrl+shift+/ 块注释 /* */ 可为Program.cs 添加版权,功能等信息。ctrl+,k,c 注意先按ctrl然后在k,c一起按 行注释 //ctrl+,k,u 注意先按ctrl然后在k,u一起按。生成和重新生成的时候没有删除动作,只有覆盖动作。F5调试 F10 逐过程 F11 逐语句。生成,会针对那些被修改过的文件进行生成;重新生成,会把所有文件重新生成。

2023-08-05 16:32:23 171

原创 C#扩展知识

public override string ToString() => "This is an object";return直接跳出当前方法ref修改后会将值带出out修改后会将值带出,不能显示的赋值虚方法是在基类中声明和实现的方法,其中任何派生类都可提供更具体的实现重写方法是在派生类中实现的方法,可修改基类实现的行为抽象方法是在基类中声明的方法,必须在所有派生类中重写。 事实上,抽象方法不在基类中定义实现。静态成员:被static修饰 ​ 实例成员:不被static修饰 ​ 静态成员先于实

2023-08-05 16:31:39 75

原创 C#Oracle全教程

在Oracle数据库安装路径,当然每台安装oracle数据库的地址都是不同的(例如:C:\Oracle11g\product\11.2.0\dbhome_1\network\admin\listener.ora tnsnames.ora)中找到文件listener.ora和tnsnames.ora文件,把两个文件中HOST = localhost配置改成HOST=192.186.11.1(服务器IP地址)重新启动服务。catch中如果产生某句代码产生异常,会在该句产生一个断点,中断于此并抛出异常。

2023-08-05 16:29:16 751

原创 C#Socket网络编程

例如,一家大型公司的总公司位于北京,而分公司遍布全国各地,如果该公司将所有的分公司都通过网络联接在一起,那么一个分公司就是一个局域网,而整个总公司网络就是一个广域网。Socket是一个底层的网络编程类,提供了底层的套接字操作方法,可以用于实现各种不同的网络协议。网络协议规定了,计算机之间连接的物理,机械,电气等特征以及计算机之间相互寻址的规则,数据发生冲突的解决,长数据如何分段传送与接受。局域网里面,必须在网络上有一个唯一的IP地址,这个 IP 地址是唯一的,在另外一个局域网,这个IP地址仍然能够使用。

2023-08-05 16:26:07 95

原创 C#多线程的使用及知识

Monitor类提供了同步对对象访问机制,,它通过向单个线程授予对象锁,来控制对对象的访问,,对象锁提供限制访问代码块(通常为临界区)的能力,当一个对象拥有对象锁时,其他任何线程都不能获取该锁。1.使用lock关键字,实现线程同步,用来保证代码块运行完成,不会被其他线程中断,它是通过在代码块运行期间为给定对象获取互斥锁来实现的。3.使用Mutex实现线程同步,Mutex类和Monitor类相似,它防止多个线程,在某一时间同时执行某个代码块,不同的是,Mutex可以用来跨线程的线程同步。

2023-08-05 16:25:15 76

原创 C#IO数据流技术

在变量,对象,数组中存储的数据都是暂时的,程序就会丢失,为了能长时间保存,将程序中的数据保持在磁盘文件中。根据流的流向分类:分为输入流和输出流,输入是指数据从数据源(文件,压缩包,视频)流向内存,输出流,指内存流向数据源,输入流读取数据,输出流被用来写入数据。File类支持对文件的操作,包括创建,复制,删除,移动和打开文件的静态方法,并协助创建FileStream对象 ,Flie类中有40多种方法。对文件夹的操作可以分为,文件夹是否存在,创建文件夹,移动文件夹,删除文件夹,以及遍历文件夹中的文件。

2023-08-05 16:24:06 58

原创 C#程序调试与异常处理

用于主动引发一个异常,使用thorw语句可以在特定的情形下,自行抛出异常,throw语句的基本格式如下:throw ExObject(new +异常类) 其中ExObject 是所要抛出的异常“对象” 所以需要new 异常类,这个异常对象System.Exception的直接或间接的子类。通常throw语句和try...catch及try...catch...finally一起使用,当引发异常时,程序查找处理此异常的catch语句,也可以在try中使用throw语句重新引发已捕获的异常。

2023-08-05 16:22:49 106 1

原创 C#操作文件夹和文件

GetDirectory 获得指定目录下所有文件夹的全路径。GetFiles 获得指定的目录下所有文件的全路径。CreateDirectory 创建文件夹。Directory 操作文件夹。Delete 删除文件夹。Exist 判断是否存在。Move 剪切文件夹。../表示上一级目录。

2023-07-27 17:07:12 97

原创 C#中ADO.NET的所有内容

而DataReader,建立了一个通道,会直接提取用户需要的数据,提取完后,管道会断开,所以在读取数据时需要保证链接的状态是开启的,而DataSet就没有这个必要。ADO.NET是微软.NET数据库访问架构,它是数据库应用程序和数据源之间沟通的桥梁,主要提供一个面向对象的数据访问架构,用来开发数据库应用程序。EDM模式在项目中的表现形式就是扩展名为.edmx的文件,这个文件本质是一个xml文件,可以手动编写CSDL,MSL,SSDL这3个部分。1.开发效率高,以面向对象的思维进行开发。

2023-07-27 17:05:54 77

原创 C#Windows开发所有内容

RichTextBox 有格式文本框控件,主要用于显示,输入和操作带有格式的文件,比如它可以实现显示字体,颜色,链接,从文件加载,文本及嵌入图像和撤销和重复编码操作以及查找指定的字符等功能。TextBox 用于输入数据和显示文本 1.创建只读文本框,设置ReadOnly属性,可以设置文本框是否为只读,如果为true那么不能编辑文本框,只能通过文本框显示数据。GroupBox控件 分组控件 主要为其他控件添加分组,并且按照控件的分组来细分窗体的功能,最常用的是Text属性,用来设置分组框的标题。

2023-07-27 17:04:08 50

原创 C#多态,虚方法,.抽象类与抽象方法,接口

成员字段和静态方法不能声明为virtual,因为virtual只对,类中的实例方法和属性有意义。抽象方法注意以下两点,1.抽象方法必须在抽象类中,2.声明抽象方法时,不能使用virtual,static和private。抽象类不能被实例化,但是它的构造函数可以被子类继承的使用,会先调用父类的有参或者无参的构造函数。3.接口:可以多继承,多重继承用,隔开,强制性的要求子类必须实现接口约定的规范。接口中的成员默认是公共的,因此,不允许加访问修饰符。2.接口不能有构造函数,因此不能直接实例化接口。

2023-07-27 17:02:36 33

原创 C#抽象类和接口的区别

4.抽象类中的成员可以添加访问修饰符,接口中不能加修饰符,默认是公共的。3.抽象类可以包括字段,构造函数,静态成员,常量,接口不可以。5.抽象类可以有非抽象方法,接口中所有方法都是抽象方法。1.抽象类是对根源的抽象,接口是对动作的抽象。2.抽象类只能单继承,接口可以多继承。

2023-07-27 17:01:07 28

原创 C#继承和base,this关键字

如果子类重写了父类的方法,就无法调用到父类的方法了吗,如果想在子类的方法中用到父类原有的方法怎么办,使用base关键字。提供了一种权限修饰符protected,只有基类和派生类才能访问,外部代码不能。base表示父类对象,this关键字表示的是本类对象。可以继承基类的属性,方法或者直接重写基类中的某些方法。不能访问,基类的的私有成员。

2023-07-27 17:00:24 62

原创 C#垃圾回收的策略

2.当对象设置为null时将进行销毁。1.对象超出其作用范围将被回收。

2023-07-27 16:57:35 17

原创 C#权限修饰符

1、能够修饰类的访问修饰符只有两个:public internal(默认就是internal)。在命名空间内部或编译单元顶部的所有类型,默认修饰符是internal,可以人为改为public。2、在同一个项目中,public的权限跟internal是一样的。命名空间、枚举类型成员默认修饰符是public。类中所有的成员默认修饰符是private。类、结构的默认修饰符是internal。接口的成员默认修饰符是public。委托的默认修饰符是internal。接口默认修饰符是internal。

2023-07-27 16:55:25 176

原创 C#析构函数的作用

主要是用来释放对象资源,析构函数是自动调用的。

2023-07-27 16:50:40 94 1

原创 C#字符串所有内容

创建成功的字符串,长度是固定的,内容不能被改变和编译,虽然使用"+",可以达到附加新字符或字符串的目的,但"+"会产生一个新的String对象,重复对字符串进行修改,会极大的增加系统开销,而stringbuilder大大提高了频繁增加字符串的效率。equals使用的两种方式1.equals(value) value:与此字符串比较的字符串 2.equals(a,b)要进行比较的两个字符串。字符串常用方法:indexof(返回字符或字符串首次出现的位置)count:要返回的子字符串的最大数量。

2023-07-27 16:48:24 58 1

原创 C#一维数组和二维数组

1.foreach遍历集合中的每个元素 foreach(类型 迭代变量名 in 集合)Array是数组的基类,可以使用Array类中的属性和方法对数组进行操作。3.Reverse进行反转。2.sort进行排序。

2023-07-27 16:46:42 114 1

原创 C#跳转语句; 1.break 2.continue

跳转语句; 1.break 2.continue

2023-07-27 16:45:15 33 1

原创 C#类型转换 隐式转换和显示转换

隐式转换:自动转换 编译器不需要检查就可以自动转换 ,数据类型从低到高顺序为,byte<short<int=char<long<float<double。高精度数据类型向低精度数据类型转换,则必然会有信息丢失甚至有可能会失败,显示转换,高精度向低精度转换需要使用()或Convert。低精度数据类型向高精度数据类型转换,永远不会溢出,可以理解为大水杯和小水杯。

2023-07-27 16:43:07 40 1

原创 C#逻辑运算符和三元运算符

逻辑运算符 &&与 ||或 都属于短路运算符 在逻辑表达式中,从左端表达式可以推出整个表达式的结果,节省计算机判断次数,&和|都是非短路运算符 三元运算符 <表达式1> ?<表达式2> :<表达式3>

2023-07-27 16:41:51 67 1

原创 C#常量const和readonly的区别

readonly 特殊的常量 动态常量 只能在构造函数中进行赋值 需要在运行时确认值。const 常量 在编译时就已经确认了值。

2023-07-27 16:39:26 30 1

原创 C#操作字符的方法。

char.is(字符),is方法判断字符类别。to方法将字符进行转换。

2023-07-27 16:36:20 29 1

原创 C#语法规则

4.条件运算符不能单独作为一条语句,需要接受单位。3.局部变量的作用域在一对{}的区间内。1.尽量使用接口,提高程序的灵活性。2.局部变量在最接近它的地方声明。

2023-07-27 16:35:23 45 1

原创 C#常见开发的三种项目类型

ASP.net网站应用程序 可以通过web访问的应用程序 网站淘宝网。Windows窗体应用程序 在计算机上运行的客户端应用程序 如qq。C#常见开发的三种项目类型都是.net Framework。控制台应用程序 控制台通过IO。

2023-07-27 11:52:15 308 1

原创 C#方法和参数的使用

out、ref、params,方法的重载和递归

2023-07-27 08:14:55 134

空空如也

空空如也

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

TA关注的人

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