C#
Keep-curiosity
岁月如歌,孤影阑珊。
展开
-
Unity 按钮呼吸效果
using System.Collections;using System.Collections.Generic;using UnityEngine;using DG.Tweening;/// <summary>/// 设置按钮呼吸特效,挂载到按钮上/// </summary>public class BtnEffect : MonoBehaviour...原创 2020-04-15 16:06:02 · 2611 阅读 · 3 评论 -
方法覆盖 - new关键字
/* * * * * * * protected:受保护的 * 只有基类以及派生类可以访问(派生类内部都可以访问) * */using System;namespace OOPExtend复习 { class Person { protected string name; public Person(){ Console.WriteLine原创 2016-12-16 00:00:46 · 437 阅读 · 0 评论 -
内存介绍 - 继承
内存: 虚拟内存总体划分为五大区域,栈区(堆栈),堆区(托管堆),常量,静态(静态未初始化和静态初始化),其他区域 栈区:由计算机虚拟内存自动进行释放管理,栈区的存储方式为先进后出,用于分配类型,栈由操作系统进行管理 不受GC(垃圾回收机制)管理,当值类型不在其作用域,其所在的内存空间自动释放,栈的执行效率为最高 堆区:用于分配小对象实例(85000原创 2016-12-16 00:02:52 · 315 阅读 · 0 评论 -
面向对象基础知识点
oop:面向对象,全程叫object oriented programming 面向对象的三大特性:1.封装 2.继承 3.多态 类的定义:实际上就是具有相同属性和特征的一类事物的抽象集合. 类和对象的关系:类是对象的抽象,对象是类的实例. 对象的定义:抽象类的实例.原创 2016-12-16 00:08:11 · 230 阅读 · 0 评论 -
访问修饰符
public - 公共的,修饰的成员可以在类外被任意修改所以使用public修饰的成员不安全private - 私有的,修饰的成员,无法在类外访问(如果成员不写访问修饰符,那么默认的修饰符就是private)怎么访问private修饰的成员呢? - 使用封装封装的快捷键:CTRL + R + E 将光标放在需要添加属性的字段上,按快捷按钮 ->回车封装:隐藏对象的信息,留出访问原创 2016-12-17 10:06:30 · 306 阅读 · 0 评论 -
结构体 - struct
结构体定义: 结构体的语法格式: struct 结构体名 { 结构体成员变量(就相当于类中的成员) } 结构体的特点 1.结构体不能被继承 2.结构体除了可以拥有结构体成员变量外,同样可以有属性 3.结构体和类一样,也可以拥有自己的行为(函数/方法) 4.结构体如果内部不存在任何构造函数,此时系统会像类那样为结构自动添加无参数的原创 2016-12-15 23:56:15 · 700 阅读 · 0 评论 -
索引器
索引器: 作用:让对象具有快速访问元素的能力. 索引器和数组的区别: 1.索引器的索引类型不限定为整数. 2.索引器可以有重载 3.索引器可以看成是特殊的属性,特殊的方法,具备set和get访问器. 索引器和属性的区别: 1.索引器是以函数名this来标示.属性是任意名字,但是首字母大写.原创 2016-12-19 21:19:46 · 333 阅读 · 0 评论 -
自定义集合
1.如何让普通的类具备foreach功能 2.本类是缓存类,提供添加,删除,清除,移除等方法来管理对象(你想存的东西) 缓存: 1.用户的一些设置 为什么要自定义集合?using System;using System.Collections;namespace 补充自定义集合{ class CacheManager:IEnu原创 2016-12-19 21:21:48 · 405 阅读 · 0 评论 -
匿名函数 - lambda表达式
/* * * 匿名函数 --> 不记名函数 C#2.0引进的 * lambda表达式 --> C#3.0引进的*/using System;namespace 匿名函数lambda表达式{ // 声明一个委托不带参数的委托// public delegate void myDelegate(); // 声明一个带参数的委托// public delegate voi原创 2016-12-19 21:34:52 · 311 阅读 · 0 评论 -
String类
String的方法// CompareTo方法判断匹配两个字符串是否相等// CompareTo返回一个int类型的数据,返回-1或者1不相等(-1和1根据ASCALL码的先后返回不同的值,码值小返回-1,反之),返回0相等 string s = "www.devsiki.com"; int res = s.CompareTo("www.baidu.原创 2017-04-08 11:40:48 · 338 阅读 · 0 评论 -
Unity 正则表达式
Regex 正则表达式通常用来检查,检索,替换符合某个格式的文本元字符: 正则表达式语言由两种基本字符组成. 原义(正常)文本字符和元字符. 元字符使用正则表达式具有处理能力. ^ 表示开头 $ 表示结尾 . 匹配除换行符以外的任意字符 * 0 or more ?原创 2020-04-15 20:23:57 · 1214 阅读 · 0 评论 -
委托和事件
委托:其实就是一种命令,A 委托 B,做事情的是 B 上面实在现实世界里,反过来在程序世界中的,委托实际上就是存储了方法的地址,做事情的任然是 B .net,编程规范说明委托是以XXXEventHandler结尾 委托的语法格式: public + delegate关键字 + 方法返回值 + 委托名using System;// 演示 A原创 2016-12-19 21:24:31 · 224 阅读 · 0 评论 -
数组
/* * * 学习数组 * 数组在有些书里面称之为引用类型,更确切的说数组是一种数据结构. * */using System;using System.Collections;namespace 数组{ class Person { public string name; public string age; public Person(s原创 2016-12-01 19:07:49 · 337 阅读 · 0 评论 -
C#语句分支
using System;namespace _分支语句 { class MainClass { public static void Main (string[] args) { #region 单分支语句if// // 语句的表达式:if(条件){语句块1;语句块2}// // 如果我们if语句只有一条语句,那么可以省略{}// if(0 == 0){//原创 2016-11-30 19:06:03 · 538 阅读 · 0 评论 -
C#中的变量和常量;运算符
/* * 01:讲解变量 */// 1.单行注释/* 2.多行注释 *//// <summary>/// 3.文档注释/// </summary>using System; // 使用System命名空间下的类库/* 命名空间关键字namespace,作用:对代码进行分类管理, * 语法:定义 namespace xx * 引入:using xx */namespace H原创 2016-11-29 16:25:36 · 579 阅读 · 0 评论 -
委托,Lambda表达式和事件
什么是委托? ——如果我们要把方法当做参数来传递的话,就要用到委托,简单的来说委托是一个类型,这个类型可以赋值一个方法的引用。 声明委托 在C#中使用一个类分两个阶段,首选定义这个类,告诉编译器这个类由什么字段和方法组成的,然后使用这个类实例化对象。在我们使用委托的时候,也需要经过这两个阶段,首先定义委托,告诉编译器我们这个委托可以指向哪些类型的方法,然后,创建该委托的实例。 定义委托的语原创 2018-12-17 14:47:34 · 163 阅读 · 0 评论 -
方法重写
方法的重写:是指在继承关系中不同类之间方法之间的比较和研究 第一个关键字:virtual(虚) 用virtual修饰的方法称之为虚方法 virtual一般情况下需要和override成对出现 如果子类重写使用了override,则父类必须拥有virtual修饰的方法 反过来不一定成立,因为我们还有方法覆盖 第二个关键字:override(重写)原创 2016-12-15 23:53:12 · 406 阅读 · 0 评论 -
多态
学习oop多态 1.方法重载 2.方法重写 3.里氏替换原则 方法重载:构造函数就属于特殊的方法重载 方法重载是指同一个类中相同方法的不同行为 方法重载的特点: 1.方法名必须相同 2.参数列表必须不相同(这里的不相同是参数类型,参数个数,以及参数顺序) 3.在有相同参数列表个数的前提下,方法返回值不作为判断方法是否重载的依原创 2016-12-15 23:51:28 · 226 阅读 · 0 评论 -
密封类 - 断子绝孙类
密封类:断子绝孙类 如果我们的类是密封类,那么就意味着不能有任何派生类。但是密封类是可以拥有父类的 C#中密封类使用sealed关键字,sealed可以将类或者方法声明为密封类或者密封方法。 对于密封类来说,表示不能继承该类 对于密封方法来说,表示不能重写该方法 密封类不能使用protected 密封类不能使用virtual 密封类的不可继原创 2016-12-15 23:48:34 · 725 阅读 · 0 评论 -
L03_运算符和表达式
运算符:是一个符号,连接操作数、根据操作返回一个值。 表达式:使用运算符将操作数连接起来的有效的式子! using System;namespace Lesson06 { class MainClass { public static void Main (string[] args) { /* 加减乘除运算符 */ int原创 2016-11-29 08:40:45 · 368 阅读 · 0 评论 -
L01_C#中的变量和常量
一:C#的编译过程1、主函数(main)是整个应用程序的入口注释方法:单行注释 // 单行注释多行注释 /* 多行注释 */文档注释 /// 文档注释二:二进制 三:C# 中的变量和常量// 声明变量int lev // 变量初始化// 使用变量原创 2016-11-28 19:36:04 · 396 阅读 · 0 评论 -
C#初级
一:C#的编译过程 1、主函数(main)是整个应用程序的入口 注释方法: 单行注释 // 单行注释 多行注释 /* 多行注释 */ 文档注释 /// 文档注释 二:进制(二进制,八进制,十进制,十六进制) 1、十进制,由0,1,2,3,4,5,6,7,8,9十个数组成,即基数是十,特点是逢十进一,借一当十 2、二进制,由0,1组成,基数为2.特点是逢二原创 2016-11-29 09:47:02 · 336 阅读 · 0 评论 -
接口 - interface
接口:接口就是公共契约. 接口的关键字:interface 接口和类属于同级关系,都属于c#中的编程单位. 接口也被称作纯洁的抽象类 接口特点: 1.不能有字段 2.接口内不能有修饰符 3.接口中不能有方法体(方法实现) 4.接口同样不可以被直接实例化 5.接口里面成员总是公共的原创 2016-12-12 10:02:58 · 282 阅读 · 0 评论 -
集合 - HashTable
/* * */using System;using System.Collections; // 集合using System.Collections.Generic; // 泛型集合namespace 集合之HashTable{class Person {public string user_Name;public int user_Id;}原创 2016-12-14 22:29:38 · 268 阅读 · 0 评论 -
Stack && Queue
/* * stack 先进后出的管理方式 * stack和queue都属于不安全的集合,(他可以存储多种数据类型) * * 装箱和拆箱 * 装就是把普通数据类型转成object对象类型 * 拆就是把装好的object拆成装箱之前的真实类型(强制转换) * 占用内存,消耗内存太大 * */using System;using System.Collect原创 2016-12-14 22:32:33 · 340 阅读 · 0 评论 -
字符串 - string
/* * string的学习 * * 正则表达式: * 比如说:账号验证(包含英文字母,特殊符号,数字,6位以上长度) * 邮箱验证 * 电话验证 * * */using System;using System.Text.RegularExpressions;namespace 字符串常见API { class MainClass { /// ///原创 2016-12-14 22:38:18 · 229 阅读 · 0 评论 -
stringBuilder - 解决拼接字符串产生的滞留性
/* * 学习stringBuilder:目的解决拼接字符串产生的滞留性 * string类有不可改变性,每次执行字符串拼接的时候,实际上都会产生新的字符串对象 * stringBuilder类解决了对字符串重复修改过程中产生大量对象的问题*/using System;using System.Text;namespace 字符串补充StringBuilder{ class M原创 2016-12-14 22:39:50 · 1437 阅读 · 0 评论 -
静态类 - static
静态构造函数: 1.一定是静态类才有静态构造函数吗? 错的 静态构造函数的特点: 1.静态函数没有访问修饰符(默认修饰符为private,但是你不能写出来) 2.静态函数是系统默认调用,程序员无法手动调用 3.如果类没有静态构造函数,而此时类中又包含静态字段(未初始化的),那么此时编译器会默认生成静态构造函数 4.在静态类中或者静态方法中不能使用对象 5.原创 2016-12-14 22:42:01 · 485 阅读 · 0 评论 -
C#--OOP面向对象
oop:面向对象,全程叫object oriented programming面向对象的三大特性:1.封装 2.继承 3.多态 类的定义:实际上就是具有相同属性和特征的一类事物的抽象集合. 类和对象的关系:类是对象的抽象,对象是类的实例. 对象的定义:抽象类的实例.原创 2018-07-06 10:50:16 · 310 阅读 · 0 评论 -
动态多态性
/* * * 里氏替换原则的实现方法:子类可以出现在任何需要父类出现的地方 * 动态多态性: * 1.虚方法的动态多态性 * 2.抽象方法的动态多态性 * 3.接口方法的动态多态性 * * 动态多态性的作用: * 1.实现”功能定义" 与 "功能实现" 相脱离,实现代码进一步灵活性 * 2.实现"系统设计" 与 "系统代码" 相脱离,实现代码稳定性,减少系统BUG * */using System原创 2016-12-14 22:46:48 · 663 阅读 · 0 评论 -
集合 - Array && ArrayList
集合:ArrayList 属于非泛型集合; ArrayList 是一个数组集合. 它属于动态改变长度的数组集合,不需要我们管理. ArrayList使用效率会低一些 因为有一个数据转换的过程1、List的基础、常用方法:声明: 1、List l = new List(); T为列表中元素类型,现在以string类型作为例子比如:List m原创 2016-12-15 20:55:03 · 263 阅读 · 1 评论 -
泛型类
使用泛型能够最大限度的重用代码,保护类型安全,提高性能 泛型成员因为类型的不确定性,不能使用算术运算符、比较运算符 泛型参数可以有多个,可以是编译器能够识别的任何类型类型参数的名字不能随便起,不能重名using System;namespace 泛型类{ class SwapTwoNumber { //T只是占位符,T只可以赋值,但是不能运算原创 2016-12-15 22:56:36 · 202 阅读 · 0 评论 -
里氏替换原则
里氏替换原则(LSP): 原则上来说子类对象介意赋给父类对象,也可以说子类替换父类,并且出现在父类能够出现的任何地方 反过来说,父类对象是不能替换子类对象的,这种特性称为里氏替换原则 1.子类可以隐式的转换父类 2.父类必须强转子类 is && as is: 相当与判断。A is B;A 是不是 B 或者A是不是B的子类 as: 先原创 2016-12-15 23:31:37 · 373 阅读 · 0 评论 -
抽象方法 - 接口
抽象类: 在程序中使用关键字abstract 如果说正常类是一个完整的类的话,抽象类实际上是一个不完整的类. 抽象类的特点: 1.如果类中存在抽象方法,那么该方法不可以有实现部分.只能是方法声明. 2.含有抽象方法的类一定是抽象类. 3.抽象类不一定含有抽象方法. 4.如果子类的父类为抽象类并且含有抽象方法的原创 2016-12-15 23:37:26 · 375 阅读 · 0 评论 -
L02_基本数据类型
sbyte、byte、short、ushort、int、uint、long、ulong8个是整数,他们之间的区别就是表示氛围不一样,而对于范围不一样的根本原因是类型在内存中的存储不同。C#常用基本数据类型的名称——含义——范围——默认值 基本数据类型纠错1、sbyte类型是有赋值范围的,所以超出赋值会报错原创 2016-11-28 20:18:54 · 606 阅读 · 0 评论