![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
暗夜无风
专注python/pytorch/ML/DL知识分享,兼顾C/C++/Java知识
展开
-
C#学习入门(九)—— 泛型
目录1. 何为泛型2.泛型类3. 泛型类的约束3.1 基类约束3.2 接口约束3.3 默认构造函数约束4. 泛型类中的静态成员5. 泛型类的继承6. 泛型方法7. 泛型接口1. 何为泛型2.泛型类3. 泛型类的约束3.1 基类约束3.2 接口约束3.3 默认构造函数约束4. 泛型类中的静态成员5. 泛型类的继承6. 泛型方法7. 泛型接口...原创 2020-11-18 23:13:32 · 341 阅读 · 1 评论 -
C#学习入门(八)—— 索引器
目录1. 何为索引器2. 如何使用2.1 定义2.2 实例1. 何为索引器 索引器(Indexer)是C#引入的一个新型的类成员,它使得类的对象可以像数组一样,使用下标访问,方便直观。索引器的功能类似于属性,它具有get和set方法,可以用来控制类中的数组、集合类成员。2. 如何使用2.1 定义访问修饰符 class 类名{ 访问修饰符 返回值的数据类型 this[索引值的数据类型 标识符] { get { 获得数据的代码; } set { 设置原创 2020-11-17 23:56:40 · 746 阅读 · 2 评论 -
C#学习入门(七)——值类型和引用类型的使用
目录1.值类型和引用类型1.1堆内存和栈内存1.2值类型和引用类型的定义1.3.NET的通用类型系统2.方法的参数类型3.值类型和引用类型的应用4.相等判断5.字符串的存储原理6.常量、枚举和结构7.装箱和拆箱1.值类型和引用类型1.1堆内存和栈内存1.2值类型和引用类型的定义1.3.NET的通用类型系统2.方法的参数类型3.值类型和引用类型的应用4.相等判断5.字符串的存储原理6.常量、枚举和结构7.装箱和拆箱...原创 2020-11-16 17:39:19 · 531 阅读 · 0 评论 -
C#学习入门(六)——静态类和密封类
目录1. 静态类1.1 静态成员1.2 静态字段1.2.1 定义1.2.2 访问1.3 静态方法1.3.1 定义1.3.2 访问1.4 静态成员关键1.5 静态方法与实例方法区别1.4 静态类1.4.1 定义1.4.2 访问1.4.3 静态构造函数2. 密封类2.1 密封类定义2.2 密封方法1. 静态类1.1 静态成员 静态成员又叫类成员,是指在成员类型或返回值类型前使用static关键字修饰的变量或方法。在C#中,能够声明为静态成员的类成员包含静态成员、静态属性、静态方法、构造函数、运算符、事件等原创 2020-11-15 22:14:18 · 450 阅读 · 0 评论 -
C#学习入门(五)—— 接口
目录1. 定义2. 实例3. 接口的重新实现4. 接口和抽象类5. 总结1. 定义 在实际生活中,经常能看到各种各样的接口,如常见的手机充电接口有三种,分别是MicroUSB插口,Type-C插口,Lightning接口。然而我们并不清楚其内部的原理,也不用清楚,我们只需要会用它就行了。 简单来说,在面向对象程序设计中,接口就是一个不能实例化,且只能拥有抽象方法的类型。在C#中,接口的声明属于类型说明,声明接口时使用interface关键字。2. 实例接口的基本语法:接口修饰符 interfac原创 2020-11-12 10:32:01 · 293 阅读 · 0 评论 -
The current.NET SDK does not support targeting .NET Core 3.1.Either target.NET Coare 1.1 or lower问题
目录问题解决方案问题 VS2017出现问题:The current.NET SDK does not support targeting .NET Core 3.1.Either target.NET Coare 1.1 or lower,or use a version of the .NET SDK that supports.NET Core 3.1 重新构建解决方案时出现以上问题,正常编译能通过,但是运行时出现问题:’“dotnet.exe”’ 不是内部或外部命令,也不是可运行的程序或批处理文原创 2020-11-11 19:42:22 · 2127 阅读 · 0 评论 -
C#学习入门(四)—— 异常和异常的处理
目录1. 异常1.1 错误1.2 错误的分类1.3 异常2. 异常处理2.1 .NET的异常类2.2 C#的常用异常类2.3 C#异常处理2.3.1 try catch语句2.3.2 try catch finally语句2.3.3 throw语句3. 总结1. 异常1.1 错误 在程序设计和运行中,不可避免的会出现各种各样的错误,为了减少设计程序中的错误,一般采用两种解决方案:(1)在程序设计阶段,使用调试程序找出程序中的错误并改正。(2)在程序中加入异常处理的语句,从而使得程序具有容错功能。原创 2020-11-10 19:11:42 · 637 阅读 · 1 评论 -
C#学习入门(三)—— 抽象类
目录1.抽象类的概念和定义1.1 定义1.2 抽象方法1.3 重写抽象方法1.4 抽象类和具体类的区别1.5 多态2. 实现的案例2.1 例子2.2 向下转换3. 异常处理3.1 try-catch3.2 使用as和is1.抽象类的概念和定义抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。 在C#中,抽象类可以包含:抽象方法、抽象属性、具体方法和具体属性。1.1 定义访问修饰符 abstract class 类名{ 访原创 2020-11-08 21:50:49 · 5239 阅读 · 1 评论 -
C#学习笔记(二)--- 封装、继承、多态
目录1. 封装1.1 定义1.2 途径 封装、继承、多态是面向对象的三大特点,而在C#也是不例外,这篇文章将阐述封装、继承、多态的用法和思想。1. 封装1.1 定义 封装,就是将类的属性和方法封闭起来,外部成员不可直接调用,只能通过预留的接口访问。 封装允许类自身的属性和方法被一些可信对象操作,如继承自该类的对象,而一些不可信的类则不允许其修改。在一定程度上保证了类内数据的稳定性。 同时,封装也能够简化编程——有时候我们并不想知道其原理,只需要会调用即可。外部的对象只需要访问一个简单的接口函数,原创 2020-10-31 11:07:49 · 2022 阅读 · 1 评论 -
使用Connection类连接SQL Server出现问题 --- System.Data.SqlClient.SqlException: 用户 ‘sa‘ 登录失败
目录1.发现问题2.解决问题2.1 尝试2.2 解决2.3 具体步骤1.发现问题//连接数据库的语句public static string Conn = @"Data Source=.;Initial Catalog=cinema_ticket;User ID=sa;Password=123456"; 使用的数据库连接串如上图所示,但是执行后发现连接不上数据库,出现以下问题:2.解决问题2.1 尝试public static string Conn = "Data Source=.;I原创 2020-10-30 16:49:24 · 3589 阅读 · 8 评论 -
C#学习笔记(一)--- 面向对象的思想和类的定义、对象的创建
目录1. 面向对象程序概念1.1 官方解释1.2 个人理解2.定义类、创建对象2.1 类的定义2.2 类的实例化2.3 成员变量2.4 命名空间1. 面向对象程序概念 C#是一个由微软开发的,现代的、通用的、面向对象的编程语言。那么什么是面向对象?1.1 官方解释百度百科是这样说的: 面向对象编程(ObjectOrientedProgramming,OOP,面向对象程序设计)是一种计算机编程架构。OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP达到了软件工原创 2020-10-28 23:56:17 · 730 阅读 · 0 评论 -
C#程序出现Process is terminated due to StackOverflowException.---属性和字段混淆!
解决方案1.出现如下问题:通过检查代码和注释,定位到写的某个类的属性问题。2.使用的C#的属性的声明为:3.然而在编写时,set和get方法使用的变量是属性名,而不是字段名,从而导致字段并没有使用到。4.正确的方案:将set和get方法中的Name改为name,从而实现C#的属性封装。...原创 2020-10-28 00:50:58 · 4414 阅读 · 0 评论 -
C#实现TCP通信---使用VS的Windows窗体应用
一、UI界面的设置1.三个button控件,使用了Click()事件。2.三个GroupBox控件,能够在一定区域显示字符,如:服务器。3.两个RichTextBox控件,用于显示输入和接收的数据。4.一个Timer定时器控件,用于接收数据的处理二、服务器实现代码1.相关变量//定义的类内变量 private TcpListener Listener; private Socket SocketClient; private NetworkSt原创 2020-10-24 18:10:45 · 3368 阅读 · 4 评论 -
VS编译时,出现无法将文件“obj\Debug\*.exe”复制到“bin\Debug\*.exe”。文件“bin\Debug\*.exe”正由另一进程使用,因此该进程无法访问此文件。
一、问题 在VS编写TCP程序的时候,因为使用的窗体应用,直接关闭窗体时没有关闭监听和线程,导致第二次运行时无法打开服务器。原创 2020-10-23 23:42:55 · 17789 阅读 · 8 评论