-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Pet
{
protected string _Name;
public Pet(string name)
{
_Name = name;
}
public void a()
{
Console.WriteLine("size:");
}
virtual public void b()
{
Console.WriteLine("fb:");
}
public void c()
{
Console.WriteLine(_Name);
}
}
class Cat:Pet
{
public Cat(string name) :base( name)
{
}
new public void a()
{
Console.WriteLine("13:");
}
override public void b()
{
base.b();
}
}
class Program
{
static void Main(string[] args)
{
//Console.Write("input:");
//string a = Console.ReadLine();
//Console.WriteLine(":" + a);
////得到字节长度
//Console.WriteLine("size:" + sizeof(int));
int[,] bb = new int[0,1];
Cat b = new Cat("66");
b.a();
b.b();
b.c();
Console.ReadKey();
}
}
}
查看全部 -
重载运算符
查看全部 -
自定义显示转换语法
查看全部 -
自定义隐式转换语法
查看全部 -
为什么需要装箱
查看全部 -
什么是装箱
查看全部 -
装箱的本质
查看全部 -
装箱图示
堆和栈的处理区别:
堆
栈
查看全部 -
sealed相当于JAVA fianl修饰词 const?
查看全部 -
集合
动态数组ArrayList:
1、初始化,可以不指定大小;
2、获取长度,使用Count属性;
3、添加Add;
4、删除Remove,RemoveAt;
5、访问[index]。
查看全部 -
泛类型就是一个模子,装入类型的材料,可以塑造出想要的产品。
泛型类优势:
1、代码量小,无论多少种笼子,我们之需要一个实现;
2、只有需要的类型才会被实例化;
3、易于维护,修改模板,所有的实例都将改变。
查看全部 -
什么是重载运算符:利用现有的某种运算符(不能创造新的运算符),针对自定义(预定义类型和现有运算符的运算含义是确定的)类或者结构,定义某种运算操作(公狗狗+母狗狗=新生狗狗)。
为什么需要重载运算符:利用现有运算符,简化自定义类型的操作。最好是,该运算符和该操作,具有一定亿相关性。
哪些运算符可以重载:
一元运算符:+,-,!,~,++,--,true,false;(操作数必须是类或结构)
二元运算符:+,-,*,/,%,&,|!,^,<<,>>,==,!=,>,<,>=,<=(两个操作数至少有一个是类或结构)
不能重载:=,&&,||,[],()等等
重载运算符不能做什么:
1、创造新运算符;
2、改变运算符语法;
3、重定义运算符如何处理预定义类型(int a+int b等于a-b);
4、改变运算符的优先级和结合性。
查看全部 -
自定义转换是为自己的结构或类定义显示和隐式转换。
为什么要自定义转换:为了让我们自己的结构或者类可以变成一个预期相关的类型,并且是这种转换更加的简单。
查看全部 -
装箱:根据值类型的值,在堆上创建一个完整的引用类型对象,并放回对象的引用,是一种隐式转换(语言自动完成)。
为什么要装箱:有时候需要将值类型转化为引用类型(比如object)来进行统一的操作(作为函数的参数)和统一的存储(object[])。
装箱的本质就是在堆上创建了引用类型副本,新创建的引用类型和原来的值类型相互独立。(就像电影《致命魔术》,不是人瞬间转移,而是有两个人)
拆箱就是将装箱后的对象转换回值类型的过程,是一种显示转换(需要手动完成)。
查看全部 -
静态类:
1、如果类只包含了静态的方法和属性,并且标识为static;
2、静态类不能创建实例,不能被继承;;
3、可以为静态类定义一个静态构造函数。
静态类主要用于基础类库(如数学库(Math类))和扩展方法。
如何扩展方法:
1、如果有源代码,直接添加一个新方法;
2、如果不能修改但也不是密闭类,可以派生子类扩展;
3、如果以上条件都不满足,可以使用静态类扩展方法。
总结扩展要求:
1、扩展方法所属的类,必须是static类;
2、扩展方法本身必须是static方法;
3、扩展方法的第一个参数类型,必须是this+类名。
查看全部
举报