- 博客(35)
- 收藏
- 关注
原创 最通俗易懂C#和.NET生成表格Excel NPOI
/向打开的这个xls文件中写入mySheet表并保存。//向打开的这个xls文件中写入mySheet表并保存。//打开xls文件,如没有则建立,如存在则在建立是不要打开该文件。//打开xls文件,如没有则建立,如存在则在建立是不要打开该文件。Console.WriteLine("生成成功");Console.WriteLine("生成成功");//模拟20行20列数据。
2023-12-25 14:42:55 155
原创 C#栈和堆
栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。然后代码执行到方法时,查找栈中放该堆首部地址的所有参数,并通过堆的首部地址来控制堆。而堆是无序的,他是一片不连续的内存域,有用户自己来控制和释放,如果用户自己不释放的话,当内存达到一定的特定值时,通过垃圾回收器(GC)来回收。存放在栈中时要管存储顺序,保持着先进后出的原则,他是一片连续的内存域,有系统自动分配和维护。引用类型总是存放在堆中。
2023-08-16 07:55:33 89
原创 C#前台线程和后台线程的区别
后台线程不会使托管的程序处于运行的状态,也就是说,如果进程停止所有前台线程,那么系统会认为,此时进程处于非运行的状态,会将所有的后台线程关闭。
2023-08-10 17:11:39 246
原创 WebAPI创建使用
给一个地址返回一些数据,就是WebAPI、WeatherForecast在我们的项目中只是一个普通的类。创建ASP.NET Core Web API项目。
2023-08-09 09:54:09 45
原创 ASP.NET全部教程
Razor 是一种将基于服务器的代码添加到网页中的标记语法Razor 具有传统 ASP.NET 标记的功能,但更容易使用并且更容易学习Razor 是一种服务器端标记语法,与 ASP 和 PHP 很像Razor 支持 C# 和 Visual Basic 编程语言。
2023-08-05 16:54:49 969
原创 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 154
原创 C#委托和XML以及匿名函数和lamda表达式对比
将一个方法作为参数传递给另一个方法,方法的类型是委托类型。委托所指向的函数必须和委托具有相同的签名。类型用T代替,T就是type类型的缩写。委托可以指向多个函数,执行时同时执行。object需要装箱拆箱,用T替代。把Form1的方法传递给Form2。可扩展标记语言,xml存储数据。+=就是再绑定一个函数给委托。-=就是把绑定好的函数给删除。xml严格区分大小写。签名就是参数和返回值。需要使用委托进行传值。
2023-08-05 16:38:39 40
原创 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 199
原创 C#扩展知识
public override string ToString() => "This is an object";return直接跳出当前方法ref修改后会将值带出out修改后会将值带出,不能显示的赋值虚方法是在基类中声明和实现的方法,其中任何派生类都可提供更具体的实现重写方法是在派生类中实现的方法,可修改基类实现的行为抽象方法是在基类中声明的方法,必须在所有派生类中重写。 事实上,抽象方法不在基类中定义实现。静态成员:被static修饰 实例成员:不被static修饰 静态成员先于实
2023-08-05 16:31:39 104
原创 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 818
原创 C#Socket网络编程
例如,一家大型公司的总公司位于北京,而分公司遍布全国各地,如果该公司将所有的分公司都通过网络联接在一起,那么一个分公司就是一个局域网,而整个总公司网络就是一个广域网。Socket是一个底层的网络编程类,提供了底层的套接字操作方法,可以用于实现各种不同的网络协议。网络协议规定了,计算机之间连接的物理,机械,电气等特征以及计算机之间相互寻址的规则,数据发生冲突的解决,长数据如何分段传送与接受。局域网里面,必须在网络上有一个唯一的IP地址,这个 IP 地址是唯一的,在另外一个局域网,这个IP地址仍然能够使用。
2023-08-05 16:26:07 104
原创 C#多线程的使用及知识
Monitor类提供了同步对对象访问机制,,它通过向单个线程授予对象锁,来控制对对象的访问,,对象锁提供限制访问代码块(通常为临界区)的能力,当一个对象拥有对象锁时,其他任何线程都不能获取该锁。1.使用lock关键字,实现线程同步,用来保证代码块运行完成,不会被其他线程中断,它是通过在代码块运行期间为给定对象获取互斥锁来实现的。3.使用Mutex实现线程同步,Mutex类和Monitor类相似,它防止多个线程,在某一时间同时执行某个代码块,不同的是,Mutex可以用来跨线程的线程同步。
2023-08-05 16:25:15 96
原创 C#IO数据流技术
在变量,对象,数组中存储的数据都是暂时的,程序就会丢失,为了能长时间保存,将程序中的数据保持在磁盘文件中。根据流的流向分类:分为输入流和输出流,输入是指数据从数据源(文件,压缩包,视频)流向内存,输出流,指内存流向数据源,输入流读取数据,输出流被用来写入数据。File类支持对文件的操作,包括创建,复制,删除,移动和打开文件的静态方法,并协助创建FileStream对象 ,Flie类中有40多种方法。对文件夹的操作可以分为,文件夹是否存在,创建文件夹,移动文件夹,删除文件夹,以及遍历文件夹中的文件。
2023-08-05 16:24:06 68
原创 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 130 1
原创 C#操作文件夹和文件
GetDirectory 获得指定目录下所有文件夹的全路径。GetFiles 获得指定的目录下所有文件的全路径。CreateDirectory 创建文件夹。Directory 操作文件夹。Delete 删除文件夹。Exist 判断是否存在。Move 剪切文件夹。../表示上一级目录。
2023-07-27 17:07:12 101
原创 C#中ADO.NET的所有内容
而DataReader,建立了一个通道,会直接提取用户需要的数据,提取完后,管道会断开,所以在读取数据时需要保证链接的状态是开启的,而DataSet就没有这个必要。ADO.NET是微软.NET数据库访问架构,它是数据库应用程序和数据源之间沟通的桥梁,主要提供一个面向对象的数据访问架构,用来开发数据库应用程序。EDM模式在项目中的表现形式就是扩展名为.edmx的文件,这个文件本质是一个xml文件,可以手动编写CSDL,MSL,SSDL这3个部分。1.开发效率高,以面向对象的思维进行开发。
2023-07-27 17:05:54 83
原创 C#Windows开发所有内容
RichTextBox 有格式文本框控件,主要用于显示,输入和操作带有格式的文件,比如它可以实现显示字体,颜色,链接,从文件加载,文本及嵌入图像和撤销和重复编码操作以及查找指定的字符等功能。TextBox 用于输入数据和显示文本 1.创建只读文本框,设置ReadOnly属性,可以设置文本框是否为只读,如果为true那么不能编辑文本框,只能通过文本框显示数据。GroupBox控件 分组控件 主要为其他控件添加分组,并且按照控件的分组来细分窗体的功能,最常用的是Text属性,用来设置分组框的标题。
2023-07-27 17:04:08 58
原创 C#多态,虚方法,.抽象类与抽象方法,接口
成员字段和静态方法不能声明为virtual,因为virtual只对,类中的实例方法和属性有意义。抽象方法注意以下两点,1.抽象方法必须在抽象类中,2.声明抽象方法时,不能使用virtual,static和private。抽象类不能被实例化,但是它的构造函数可以被子类继承的使用,会先调用父类的有参或者无参的构造函数。3.接口:可以多继承,多重继承用,隔开,强制性的要求子类必须实现接口约定的规范。接口中的成员默认是公共的,因此,不允许加访问修饰符。2.接口不能有构造函数,因此不能直接实例化接口。
2023-07-27 17:02:36 44
原创 C#抽象类和接口的区别
4.抽象类中的成员可以添加访问修饰符,接口中不能加修饰符,默认是公共的。3.抽象类可以包括字段,构造函数,静态成员,常量,接口不可以。5.抽象类可以有非抽象方法,接口中所有方法都是抽象方法。1.抽象类是对根源的抽象,接口是对动作的抽象。2.抽象类只能单继承,接口可以多继承。
2023-07-27 17:01:07 32
原创 C#继承和base,this关键字
如果子类重写了父类的方法,就无法调用到父类的方法了吗,如果想在子类的方法中用到父类原有的方法怎么办,使用base关键字。提供了一种权限修饰符protected,只有基类和派生类才能访问,外部代码不能。base表示父类对象,this关键字表示的是本类对象。可以继承基类的属性,方法或者直接重写基类中的某些方法。不能访问,基类的的私有成员。
2023-07-27 17:00:24 85
原创 C#权限修饰符
1、能够修饰类的访问修饰符只有两个:public internal(默认就是internal)。在命名空间内部或编译单元顶部的所有类型,默认修饰符是internal,可以人为改为public。2、在同一个项目中,public的权限跟internal是一样的。命名空间、枚举类型成员默认修饰符是public。类中所有的成员默认修饰符是private。类、结构的默认修饰符是internal。接口的成员默认修饰符是public。委托的默认修饰符是internal。接口默认修饰符是internal。
2023-07-27 16:55:25 193
原创 C#字符串所有内容
创建成功的字符串,长度是固定的,内容不能被改变和编译,虽然使用"+",可以达到附加新字符或字符串的目的,但"+"会产生一个新的String对象,重复对字符串进行修改,会极大的增加系统开销,而stringbuilder大大提高了频繁增加字符串的效率。equals使用的两种方式1.equals(value) value:与此字符串比较的字符串 2.equals(a,b)要进行比较的两个字符串。字符串常用方法:indexof(返回字符或字符串首次出现的位置)count:要返回的子字符串的最大数量。
2023-07-27 16:48:24 65 1
原创 C#一维数组和二维数组
1.foreach遍历集合中的每个元素 foreach(类型 迭代变量名 in 集合)Array是数组的基类,可以使用Array类中的属性和方法对数组进行操作。3.Reverse进行反转。2.sort进行排序。
2023-07-27 16:46:42 129 1
原创 C#类型转换 隐式转换和显示转换
隐式转换:自动转换 编译器不需要检查就可以自动转换 ,数据类型从低到高顺序为,byte<short<int=char<long<float<double。高精度数据类型向低精度数据类型转换,则必然会有信息丢失甚至有可能会失败,显示转换,高精度向低精度转换需要使用()或Convert。低精度数据类型向高精度数据类型转换,永远不会溢出,可以理解为大水杯和小水杯。
2023-07-27 16:43:07 46 1
原创 C#逻辑运算符和三元运算符
逻辑运算符 &&与 ||或 都属于短路运算符 在逻辑表达式中,从左端表达式可以推出整个表达式的结果,节省计算机判断次数,&和|都是非短路运算符 三元运算符 <表达式1> ?<表达式2> :<表达式3>
2023-07-27 16:41:51 87 1
原创 C#常量const和readonly的区别
readonly 特殊的常量 动态常量 只能在构造函数中进行赋值 需要在运行时确认值。const 常量 在编译时就已经确认了值。
2023-07-27 16:39:26 40 1
原创 C#语法规则
4.条件运算符不能单独作为一条语句,需要接受单位。3.局部变量的作用域在一对{}的区间内。1.尽量使用接口,提高程序的灵活性。2.局部变量在最接近它的地方声明。
2023-07-27 16:35:23 56 1
原创 C#常见开发的三种项目类型
ASP.net网站应用程序 可以通过web访问的应用程序 网站淘宝网。Windows窗体应用程序 在计算机上运行的客户端应用程序 如qq。C#常见开发的三种项目类型都是.net Framework。控制台应用程序 控制台通过IO。
2023-07-27 11:52:15 354 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人