c#学习笔记
c#
Blazerrr
学习C#中
展开
-
c#委托与事件、匿名函数与回调
委托什么是委托//买家想买房子class Buyer{ public House BuyHouse(float money,float area) { //不知道谁能卖给他 }} //买家想执行但却不知如何实现,中介知道怎么去实现,买家委托中介class Intermediary{ public House BuyHouse(...原创 2020-02-29 11:47:28 · 456 阅读 · 0 评论 -
c#中常见的集合、集合的类成员与用法
常用集合一、数组的局限性数组只能存储相同类型的数据数组不能动态的扩展长度二、什么是集合集合的定义:集合原本是数学上的一个概念,表示一组具有某种性质的数学元素,引用到程序设计中表示一组具有相同性质的对象。集合好比容器,将一系列相似的组合一起,是一个特殊的类,和数组一样,可以通过索引访问集合成员,也可以通过”键”来访问,与传统数组不同的是,集合的大小可以动态调整,可以在运行时添加或删除...原创 2020-02-29 10:58:19 · 1541 阅读 · 0 评论 -
c#中的接口与泛型
接口接口:接口是一组包含了类或结构可以实现的功能的定义接口可以包含事件,索引器,方法和属性,但是不能包含字段//接口名一般以大写字母 I作为开头interface IUSB{ string USB_Type { get; set; } string ReadFile(); void WriteFile(string content);} 接⼝相⽐类,最...原创 2020-02-26 20:45:33 · 420 阅读 · 0 评论 -
c#抽象类、静态类与单例模式
抽象类一、抽象方法抽象方法的声明:[访问修饰符] abstruct 返回值类型 方法名(参数列表);抽象方法必须放在抽象类里,class前面要加修饰符abstract抽象方法没有方法体,格式就为:[访问修饰符] abstruct 返回值类型 方法名(参数列表);抽象⽅法的访问修饰符不能是private,因为private不允许继承,抽象方法必须在⼦类中全部实现,除⾮⼦类也是⼀个抽象类,...原创 2020-02-26 19:28:56 · 549 阅读 · 0 评论 -
C#构造函数、继承与多态
构造函数构造函数就是一个对象的初始操作的函数,new对象()的时候调⽤,方法名必须与类一样,且没有返回值类型构造函数⼀般都是public,因为⼀旦构造函数被设置为了private,那么外界就⽆法new这个对象了如果一个类没有构造函数,那么系统会自动写一个空参数空方法体的构造函数构造函数是可以重载的,如果想在执行当前构造函数之前,先执行构造函数:当前构造函数(…) : this(传实参)...原创 2020-02-26 18:50:16 · 828 阅读 · 0 评论 -
c#方法的重载与方法的递归
方法的重载方法重载:方法重载是指在同一个类中方法同名,参数不同(参数的类型、个数不同),调用时根据实参的形式,选择与他匹配的方法执行操作的一种技术参数个数和类型都⼀样,但返回值类型不⼀样,不能算做重载方法的递归方法自己调用自己多个⽅法之间来回调⽤使⽤递归时⼀定要有出口示例:斐波那契数列class MathTool{ //斐波那契数列 //0, 1, 1, 2...原创 2020-02-21 20:15:54 · 178 阅读 · 0 评论 -
c#string字符串、string类常用方法及StringBuilder
string字符串string字符串是非常常用的数据类型,它是引用类型,却又非常特殊对String的操作都是改变赋值地址而不是改变值操作,如下图,当对str再次进行赋值时,str会重新指向一个地址,原来地址中的"abc"就会成为垃圾,会浪费内存空间字符串中还有一个缓存池字符串可以当做字符数组使用,但只能读不能写string str = "abc";Console.Write...原创 2020-02-21 20:02:18 · 405 阅读 · 0 评论 -
C#中变量的作用域以及数据类型整合
变量的作用域函数内部的变量会隐藏外部定义的全局变量变量作用域通常在一个大括号内都可以访问,超过这个大括号就不能访问了在for、while或类似语句中声明的局部变量存在于该循环体内就近原则:变量的就近原则指尽可能在靠近第一次使用变量的位置声明和定义该变量数据类型的整合...原创 2020-02-20 18:46:02 · 191 阅读 · 0 评论 -
C#属性访问器、形参与实参、引用参数ref、输出参数out、数组参数parmas和默认值参数学习
属性访问器一般情况下,字段都会被设置为private(私有),外界如果想访问时,快捷设置字段的访问方式,只读or只写or可读可写,就可以使用到属性,或称属性访问器public class People{ private string name; public string name { //get访问器用于读取字段,若属性内没有get访问器,则被认为是不可读的 get{re...原创 2020-02-20 18:29:57 · 690 阅读 · 0 评论 -
C#用Random类中的NextBytes、Next和NextDouble方法生成不同范围内的随机数序列
Random.Next方法一、重载Next():返回一个非负随机整数Random random= new Random();Console.WriteLine("Generating 10 random numbers:");for (int ctr = 1; ctr <= 10; ctr++){ int number = random.Next(); Console.W...原创 2020-02-19 22:24:11 · 4777 阅读 · 0 评论 -
C#面向对象编程的特点,类和对象以及类中的字段和方法
面向对象编程面向过程:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了,重点关⼼解决问题的步骤面向对象:面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为,重点关⼼解决问题过程中参与的对象有哪些,分别有哪些特性和⾏为面向对象编程的优点:易维护、易拓展、易复⽤...原创 2020-02-19 22:05:21 · 335 阅读 · 0 评论 -
C#结构体、枚举与访问修饰符
枚举枚举类型是一个自定义类型,属于值类型枚举类型的定义:enum 枚举名 { 枚举值1,枚举值2… }enum EquipType{ Helmet, BodyArmor, Knapsack, Knife}枚举类型变量的定义与使⽤//例:EquipType hel = EquipType.Helmet;EquipType ba = EquipType.BodyAr...原创 2020-02-18 18:33:52 · 367 阅读 · 0 评论 -
C#实现冒泡排序
冒泡排序一、思想当前数组元素与后⾯的数字元素进⾏对⽐,如果前⼤后⼩,则进⾏交换,array[0]与array[1]对比,array[1]与array[2]对比,array[n]与array[n+1]对比每轮可以确定⼀个最⼤值在数组的末位,⼏轮之后即可完成排序冒泡排序当然也可以从⼤到⼩排序,那样则前⼩后⼤进⾏交互二、代码for (int i = 0; i < array.Len...原创 2020-02-17 18:54:44 · 182 阅读 · 0 评论 -
C#数组及foreach遍历
一维数组数组用来将相同数据类型存储在存储单元里组成的构造类型,数组的每个成员称为一个数组元素。一、一维数组的初始化动态初始化1.数据类型[] 数组名 = new 数据类型[数组长度];此时数组中每一个元素都是默认值,int默认值为0,float默认值为0,bool的默认值为false,char的默认值为’\0’,表示空字符,string的默认值为""2.数据类型[] 数组名 = new...原创 2020-02-17 18:40:59 · 4699 阅读 · 1 评论 -
C#基本运算符
运算符赋值运算符 “=”,是⼀个运算,将后⾯的结果赋给前⾯的变量或常量一、算术运算符+、-、*、/、%(取余,5%3=2),都是二元运算符++运算符和- -运算符都是一元运算符:a++;等价于a=a+1; int showYourAge = age++;//结果是18 //解析: //第⼀步:将age的值赋给showYouAge //第⼆步:age⾃增int showYo...原创 2020-02-12 18:34:23 · 576 阅读 · 0 评论 -
C#数据类型以及常量与变量
数据类型一、数据的量级1024字节(byte)=1KB;1024KB=1MB;1024MB=1GB;1024GB=1TB;1024TB=1PB二、基本数据类型bool:0000 0000 false;0000 0001 turesbyte:有符号的8位整数,第一位表示符号(+、-),1000 0000表示-128,取值范围为-128~127byte:无符号的8位整数,取值范围为0...原创 2020-02-12 18:03:36 · 755 阅读 · 0 评论