Implicit关键字在C#中的用法
implicit 关键字用于声明用户定义的隐式类型转换运算符。隐式转换可以通过消除不必要的类型转换来提高源代码的可读性。但是,因为可以在程序员未指定的情况下发生隐式转换,因此必须注意防止令人不愉快的后果。一般情况下,隐式转换运算符应当从不引发异常并且从不丢失信息,以便可以在程序员不知晓的情况下安全使用它们。
举例如下:
using System;
struct Celsius //定义一个结构
{
public float temp;
public Celsius(float temp)
{
this.temp = temp;
}
public static implicit operator Celsius(float temp) //重载一
{
Celsius c;
c = new Celsius(temp);
return c;
}
public static implicit operator float(Celsius c) //重载二
{
return ((((c.temp-32)/9)*5));
}
}
class TemplApp
{
static void Main()
{
float t = 98.6F;
Console.Write("转换{0}成Celsius为:",t);
Console.WriteLine((Celsius)t);
Console.WriteLine("t={0}",t);
Console.ReadLine();
}
}
//输出结果如下:
/*
转换98.6成Celius为:37
t=98.6
*/