C#学习(面向对象)
zhong_0419
这个作者很懒,什么都没留下…
展开
-
C#枚举ref out 关键字简单总结
枚举/// <summary>/// 枚举/// </summary>enum Sex{ 男, 女}//枚举是值类型//枚举值是从0递增的整数//枚举不能定义字段属性和方法ref//ref关键字 使值类型参数,按引用类型传参static void Main(string[] args){int age = 3;Growth(ref age);Console...原创 2018-07-08 20:21:33 · 317 阅读 · 0 评论 -
C#泛型基本概念
**泛型(Generic)** 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。 类中定义泛型具体格式如下: class DemoList<T>{T[] arr;public DemoList(int capcity){ arr=new T[i...原创 2018-07-13 16:25:28 · 446 阅读 · 0 评论 -
C#继承、抽象类、接口的知识(简易题目)
abstract class Animal { private string name; public string Name { get { return name; } set {...原创 2018-07-06 19:11:10 · 804 阅读 · 0 评论 -
C#接口
接口用关键interface来修饰,命名必须用I开头; * 格式: * interface 接口名{ * * }接口里面可以定义属性和方法(只有声明没有实现); * 格式:(默认访问权限是public) * 类型 属性名{get;set;} * 返回值类型 方法名(参数列表);接口一种类型,一个模板,定义一套规范,统一规范; 子类实现接口必须重写接口中成员不需要用override * 格式: ...原创 2018-07-06 12:08:15 · 145 阅读 · 0 评论 -
C#抽象类
抽象类1.不可以实例化抽象类一般是作为父类存在2.抽象类可以定义抽象成员(属性,方法)修饰符 abstract 返回值类型 方法名(参数列表);只有方法头,没有方法体3:子类继承抽象类必须重写抽象成员 abstract class Animal{ public int height; public int weight; public char...原创 2018-07-06 09:21:28 · 228 阅读 · 0 评论 -
C#事件(event)练习题
作业一: 1.英雄:大招1000,防御力为300,当英雄对怪物进行攻击时,怪物会做出反应; 2.怪物:攻击力500,防御力400,当怪物对英雄进行攻击时,英雄会做出反应; 3..如果a攻击力大于b的防御力,那a攻击b时,b会受伤害,否则就是避开 4.一个英雄对象,4只怪物,怪物编号不同;class Hero { //声明委托 public delegate ...原创 2018-07-12 15:35:59 · 2113 阅读 · 2 评论 -
C#委托和事件基本概念
委托(delegate)什么是委托 如果我们要把方法当做参数来传递的话,就要用到委托。委托是引用类型,表示一组具有相同返回值类型,参数列表的方法引用; 委托的定义格式: public delegate 返回值类型 委托名(参数列表); public delegate void ActionDelegate(); public delegate void ActionDelegate1(int i...原创 2018-07-12 14:11:12 · 297 阅读 · 0 评论 -
C#集合练习题(栈Stack<T>)
实现一个栈要求实现出栈pop(),入栈push(),Min返回最小值的操作的时间复杂度为o(1);思路:要使这些操作的时间复杂度为o(1),则必须保证栈的每个元素只被遍历一次 class MyStack { Stack<int> myStack = new Stack<int>(); Stack<int&g...原创 2018-07-17 19:42:12 · 726 阅读 · 0 评论 -
C#集合练习题(链表LinkedList<T>)
封装一个集合提供push(T value)在尾部添加新元素,pop()删除并返回最后一个元素,、shift()删除并返回第一个元素,unshift(T value)在首位添加新元素;底层用链表模式保存数据实现用foreach循环自定义集合 class MyCollecion<T> : IEnumerable<T> { LinkedList&...原创 2018-07-17 19:31:50 · 874 阅读 · 0 评论 -
C#方法重写向上转型(继承)
方法重载是指同一个类中的多个方法具有相同的名字,但这些方法具有不同的参数列表,即参数的数量或参数类型不能完全相同方法重写是存在子父类之间的,子类定义的方法与父类中的方法具有相同的方法名字,相同的参数表和相同的返回类型 (1)子类中不能重写父类中的final方法 (2)子类中必须重写父类中的abstract方法 (3)建立在继承的基础上,子类重写父类的方法 virtual:虚...原创 2018-07-05 10:34:17 · 957 阅读 · 0 评论 -
C#继承
//(1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。//(2)编写一个类,继承自矩形类,长方体,具有长、宽、高属性,和计算体积的方法。//(3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、宽、高,输出其底面积和体积。 class Rectangle { public float wide; public float ...原创 2018-07-04 19:47:01 · 385 阅读 · 0 评论 -
C#继承
标识符:程序中需要自定义名称的都统称为标识符例如:类名:开头字母大写方法名:开头字母大写属性名:开头字母大写参数名: 小写继承:子类继承父类所有非私有成员例如:S继承F,S是子类、派生类;F是父类、基类;继承作用:有利于提高重复代码利用率和节省开发时间 有利于代码的扩展注意:每个子类只能有一个父类执行子类构造函数的同时,会先执行父类的构造函数.如果父类只...转载 2018-07-04 19:35:46 · 109 阅读 · 0 评论 -
C#类和对象
类:对一类具有相同属性和方法对象的统称,对一类相似的对象的抽象描述;类是一个模板,一个程序基本单位;类是一种类型,自定义类型;对象是一个实例,实例化对象;(客观世界中,对象就是实际存在物体,万物皆对象); 类的格式:class 类名{定义字段:存储信息,存储数据;访问修饰符 类型 字段;//小写 定义属性:对字段进行封装,提供访问器,修改器,设置字段权限...原创 2018-07-04 19:34:22 · 302 阅读 · 1 评论 -
C# List<T>的用法(附:索引器)
List<T>类所属命名空间:System.Collections.GenericpublicclassList<T> : IList<T>,ICollection<T>, IEnumerable<T>, IList,ICollection, IEnumerableList<T>类是 ArrayList 类的泛型等...原创 2018-07-16 16:21:12 · 6434 阅读 · 0 评论 -
C#结构 const static readonly sealed关键字
结构的定义struct 结构名{}在 C# 中,结构是值类型数据结构结构的特点结构可带有方法、字段、索引、属性、运算符方法和事件。 结构可定义构造函数,但不能定义析构函数。但是,您不能为结构定义默认的构造函数。默认的构造函数是自动定义的,且不能被改变。 与类不同,结构不能继承其他的结构或类。 结构不能作为其他结构或类的基础结构。 结构可实现一个或多个接口。 结构成员不能指定为 abstract、v...原创 2018-07-09 19:10:41 · 235 阅读 · 1 评论 -
C#中数组、ArrayList和List三者的区别
在C#中,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢。 数组 数组在C#中是最早出现的。它在内存中是连续的存储的,所以索引速度很快,而且赋值与修改元素也很简单。可以利用偏移地址访问元素,时间复杂度为O(1);可以用折半查找法查找元素,效率高。 string[] s=new string[3];//赋值s[0]="a";s[1]="b";s[2]=...转载 2018-07-08 20:47:14 · 124 阅读 · 0 评论 -
C#内置委托,匿名函数和Lambda
内置委托类型:Action:表示无返回值类型无参数列表的委托public delegate void Action();Action<>:表示无返回值类型,有参数列表的委托public deleaget void Action<in T>()...以上这个委托类型重载了16个,所以最多可以表示参数列表为16的委托; Func<out TResult>表示有返回值...原创 2018-07-13 16:44:37 · 720 阅读 · 0 评论