public static implicit operator 【隐式转换】Cat【没有函数名称】 (Dog dog)
将dog类型转换为cat类型
{
return new Cat(dog_name);
}
public static explicit operator 【显式转换】Cat【没有函数名称】 (Dog dog)
隐式转换:
显示转换:
自定义转换:为了让我们自己的结构或者类可以变成一个预期相关的类型,并且这种转换更加简单。
隐式转换语法public static implicit opertor Dog()(Cat cat){retuen new Cat(Dog dog);}
显示转换语法public static explicit operator Dog(Cat cat){...}
类转换接口时,是因为该类继承了该接口,所以可以调用已经实现了的接口方法。
而自定义转换是要两个派生类之间的转换,是无法调用对方的重写的方法。如果是基类的话是可以直接将派生类强制转换来调用派生类的方法的
C#
隐式转换语法
public static implicit opertor Dog(){
......
}
显示转换语法
public static explicit operator Dog(Cat cat){...
}
cat转为dog
实例 dog 转为cat
隐式调用:
public static implicit operator{Cat(Dog dog)
return new Dog(cat.Name) }
显式调用:使用时需要加()来进行强制转换
public static explict operator {Dog(Cat cat)
return new Cat(dog.Name)}
自定义转换的语法
为什么要自定义转换
自定义转换:
为自己的结构或者类定义显式或隐式转换,为了让结构或者类可以变成一个预期相关的类型,并且使这种转换更加简单。
public static explicit(显式)/ implicit(隐式) operator 没有函数名称
显式需要用到括号强制转换。
自定义显示转换语法
自定义隐式转换语法
自定义转换是为自己的结构或类定义显示和隐式转换。
为什么要自定义转换:为了让我们自己的结构或者类可以变成一个预期相关的类型,并且是这种转换更加的简单。
自定义转换:为自己的结构或者类定义显示和隐式转换
原因:为了让我们自己的结构或者类可以变成一个预期相关的类型,并且使这种转换更加简单
隐式转换语法:
public static implicit operator Dog(Cat cat)
{
....
}
显示转换语法:
public static explicit operator Dog(Cat cat)
{
....
}
说明:其中implicit为隐式关键字,explicit为显示关键字。Dog是目标类型。语句中无函数名称
自定义转换
自定义转化:
自定义转换:
为自己的结构或者类定义显式或隐式转换,为了让结构或者类可以变成一个预期相关的类型,并且使这种转换更加简单。
public static explicit(显式)/ implicit(隐式) operator 没有函数名称
显式需要用到括号强制转换。
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
和隐式转换的不同是显式转换调用时需要加一个括号,括号中放一个转换的目标类型
自定义装换,主要是类或结构使用,区别是显示在调用时需要加括号,括号内是需要装换类型的对象,如A a=new A(); a=(A)B;如果是隐式就直接B赋给a;
显式装换语法public static explicit operator A(B b){`````}
隐式示装换语法public static implicit operator A(B b){`````}
自定义转换:为自己的结构或者类定义显示或隐式转换。
原因:为了让我们自己的结构或者类可以变成一个预期相关的类型,并且是这种转换更加简单。
隐式转换语法:
public static implicit operator Dog(Cat cat)
{
……
}
显示转换语法:
public static explicit operator Dog(Cat cat)
{
……
}
把猫咪转化成狗
自定义转换:必须是 public static修饰
显式转换:将Cat转换成Dog,调用时需要在转换的对象前加括号,括号中放转换的目标类型。
public static explicit operator Dog(Cat cat)
{
...
}
Cat cat = new Cat("Tom");
Dog dog= (Dog)cat;//自定义显式转换
隐式转换:将Cat转换成Dog
public static implicit operator Dog(Cat cat)
{
...
}
Cat cat = new Cat("Tom");
Dog dog = cat;//自定义隐式转换
自定义转换:为自己的结构、类 定义显示和隐式转换。
隐式转换:pulic static implicit operateor B类 (A类 A类对象 ) {...}
B类 B类对象=A类对象;
显示转换:pulic static explicit operateor B类 (A类 A类对象 ) {...}
B类 B类对象 =(B类)A类对象;
转换方法是public static的
显式转换关键词:explicit(显式) operator(转换)
将Cat类的对象cat转换成Dog类的对象
隐式转换的语法:关键词 implicit(隐式)operator(转换)
隐式转换和显式转换的调用不同
显式转换,public static 必不可少,operator是转换,Dog是返回值类型,没有函数名