-
static扩展方法的方法,看图
查看全部 -
static的作用是初始化
查看全部 -
sealed override
查看全部 -
java final修饰= C# sealed
查看全部 -
这节课不太明白
查看全部 -
pubilc static--静态方法 implicit--隐式 operator--转换
pubilc static--静态方法 explicit--显式 operator--转
查看全部 -
自定义转换:
为自己的结构或者类定义显式和隐式装换
为了让我们自己的结构或者类可以变成一个预期相关的类型,并且让这种转换变的更加简单
隐式转化语法:
public static implicit operator Dog(Cat cat)//将猫咪的类转换为狗狗的类,
为猫咪的类定义一个静态的方法
{
}
实现隐式转换至少是定义了一个静态的方法,所以是public static,这两个必不可少
如果是隐式转换就使用implicit
并且使用operator关键字标明这是一种转换操作
显式转换语法:
public static explicit operator Dog(Cat cat)
{
}
显式转换语法用的是explicit
和隐式转换的不同是显式转换调用时需要加一个括号,括号中放一个转换的目标类型
查看全部 -
装箱:根据值类型的值,在堆上创建一个完整的引用类型对象,并返回对象的引用,是一种隐式转换
就是将值类型转换为引用类型
有时候需要将值类型转化为引用类型来进行统一的操作和统一的存储
装箱示例:
int i=3;//这个是int类型的值类型,值为3
object oi=null;//这个是object的引用,赋值为空
oi=i;//将 i的值3赋值给 oi 的过程就是装箱
这样输出 i 和oi,输出的都是3
只有写了oi=i;输出的值才会相同
其它时候 i 就是 i 的值,oi就是oi的值
装箱本质:
在堆上创建了引用类型的副本,新创建的引用类型和原来的值类型相互独立
拆箱:
将装箱后的对象转换回值类型的过程,是一种显示转换
int i=3;
object oi=i;
int j=(int)oi;//把oi这个引用类型的对象通过一个强制的显示转换(int),转换为
我们想要的值类型
输出 j 的值就为3
查看全部 -
静态类:类只包含了静态的方法和属性,并且标识为static,静态类不能创建实例,不能被继承,可以为它定义一个静态构造函数
主要用于基础类库和扩展方法
静态类扩展方法
static class PetGuide
{
public static double HowToFeed(this Dog dog)
{扩展给狗狗喂食的方法
}}
使用时:
Dog dog=new Dog();
dog.HowToFeed();//直接调用扩展的这个方法
扩展方法所属的类必须是static类
扩展方法本身必须是static方法
扩展方法的第一个参数类型,必须是this+类名
public static double HowToFeed(this Dog dog)
查看全部 -
静态成员:标识为static的字段,方法,属性,构造函数,事件
class Dog
{
static int Num;
}
静态成员将被类的所有实例共享
静态成员将直接通过类名访问
Dog.Num+=1;
静态成员独立于任何实例,没有实例也可以访问
静态函数独立于任何实例,没有实例也可以调用
静态函数不能访问实例成员,实例成员能访问静态函数,仅能访问其它静态成员
class Dog
{
static public void PrintNum()
{
Console.WriteLine(“Num=”+Num);
}
}
静态构造函数:与类同名,使用static参数,无访问修饰符,用于初始化静态字段(为静态成员而生)
class Dog//类名
{
static Dog()//静态构造函数,与类同名,无参数,无访问修饰符
{
num=0;//只能访问静态成员
}
}
查看全部 -
结构:
struct 名字
{
}
查看全部 -
接口:指定一组函数成员,而不实现他们的引用类型
接口是引用类型
Interface
interface ICatchMice
{
void CatchMice();//默认public,但不能加任何访问修饰符
}
只能用来被实现
Cat:ICatchMiice//语法很像继承
{
public void CatchMice(){必须有实现}
}
接口也是一种引用类型
Cat c=new Cat();
ICatchMiice ic=(ICatchMiice)c;
c.CatchMice();//和下面意思一样,这个是通过对象c调用的
ic.CatchMice();//和上面意思一样,这个是通过接口ICatchMiice调用的
通过接口ICatchMiice调用的只能调用接口ICatchMiice所定义的那组函数
通过c对象调用,我们就可以调用这个对象c自身有的函数
实现多个接口
Cat:Pet,ICatchMice,IClimbTree
{
}
Cat继承Pet这个类,后面还实现了两个接口ICatchMice,IClimbTree
实现这两个接口就要定义这两个接口所声明的接口里面的那组方法
查看全部 -
密闭类:sealed class 类
密闭方法:sealed public void 方法(){}
密闭类不可以被继承
密闭方法不可以被override重写
查看全部 -
抽象方法:abstract 方法()
没有函数体,必须在派生类当中用override重写
抽象类:abstract class 父类
可以有普通函数,也可以有抽象函数
抽象类不能被实例化
例如,A是抽象类
A x=new A();这就是错的
查看全部 -
继承
class ChildClass(子类) : ParentClass(基类)
{
.........
}
Object类是所有类的共同基类,是唯一的非派生类,是继承层次结构的基础。对于其他类,父类和子类的概念是相对的。
集成智能是单继承,父类可以继承自一个祖父类,直到object类。
查看全部
举报