在c#中,是一个构造函数,能够在某些情况下在不同类型之间进行隐式强制转换
本文关键字:之间 同类型 情况下 转换 构造函数 一个 | 更新日期: 2023-09-27 18:12:22
在c#中,在某些情况下,构造函数是否能够在运行时在不同类型之间进行隐式转换?比如从type 'System '输入。类型'到一些对象或向上铸造一些对象到它的父或从'int'到'double'?
为了匹配在重载解析过程中没有直接匹配的构造函数(或任何方法),编译器会在可能的情况下在后台添加显式强制转换。
示例(源):
using System;
public class C
{
public void M()
{
int num = 1;
var f = new Foo(num);
}
}
public class Foo
{
public Foo(double a)
{
}
}
编译生成的代码:
public class C
{
public void M()
{
int num = 1;
Foo foo = new Foo((double)num);
}
}
public class Foo
{
public Foo(double a)
{
}
}