C#中类的显示类型转换和隐式类型转换
栗子
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
Stone s = new Stone(1000);
Monkey m = (Monkey)s;
}
}
class Stone
{
public int age;
public Stone(int age)
{
this.age = age;
}
}
class Monkey
{
public int age;
public Monkey(int age)
{
this.age = age;
}
}
}
上述案例是通不过编译的,因为Stone和Monkey没有任何继承关系
显示类型转换操作符
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
Stone s = new Stone(1000);
Monkey m = (Monkey)s;
Console.WriteLine(m.age);
}
}
class Stone
{
public int age;
public Stone(int age)
{
this.age = age;
}
public static explicit operator Monkey(Stone s)
{
Monkey m = new Monkey(s.age / 100);
return m;
}
}
class Monkey
{
public int age;
public Monkey(int age)
{
this.age = age;
}
}
}
可以编译和运行
隐式类型转换
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
Stone s = new Stone(1000);
Monkey m = s;
Console.WriteLine(m.age);
}
}
class Stone
{
public int age;
public Stone(int age)
{
this.age = age;
}
public static implicit operator Monkey(Stone s)
{
Monkey m = new Monkey(s.age / 100);
return m;
}
}
class Monkey
{
public int age;
public Monkey(int age)
{
this.age = age;
}
}
}
编译运行成功
猜你喜欢
weblog
1024
mysql数据库日期date类型和数值int类型转换一、date型换int型SELECTUNIX_TIMESTAMP(now())二、int型转date型SELECTFROM_UNIXTIME(1578636398)上述都精确到秒值
ofc
c#中的数据类型
weblog
3063
c#中的数据类型
c#中的数据类型分为值类型和引用类型
值类型有包括(结构体类型,枚举类型)
引用类型又包括(类类型,数组类型,接口类型,委托类型)
c#数据类型的派生谱系
值类型
official
775
RabbitMQ作为一个消息队列提供一个通用的消息发送和接收平台,并且保证消息在传输过程中的安全可靠。消息(Message)由Client发送,RabbitMQ接收到消息之后通过交换机转发到对应的队
算法基础
1871
如果一个类实现了一个接口,如何获取接口中泛型的实际类型importjava.lang.reflect.ParameterizedType;
importjava.lang.reflect.Type
blog
c#对象和json字符串转换
算法基础
1190
c#对象和json字符串转换usingSystem;
usingSystem.Runtime.Serialization.Json;
usingSystem.IO;
usingSystem.Text
blog
java数据类型
java基础
4184
(class)接口(interface)数组byte: byte数据类型是8位、有符号的,以二进制补码表示的整数; 最小值是-128(-2^7); 最大值是127(2^7-1); 默认值是0; byt
ofc
mysql整数类型的范围
weblog
1008
mysql整数类型的范围MySQL支持多种数据类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。其中,整数类型包括:TINYINT、SMALLINT、MEDIUMINT、INT和
blog
asm类型描述符和方法描述符
java虚拟机(jvm)
5704
1.内部名在许多情况下,一种类型只能是类或接口类型。例如,一个类的超类、由一个类实现的接口,或者由一个方法抛出的异常就不能是基元类型或数组类型,必须是类或接口类型。这些类型在已编译类中用内部名字表示
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。