C#中重载转换运算符语法中一个单词的意思

chenwei1108 2009-07-18 05:21:12
我想知道以下代码
public static implicit operator ConvClass2(ConvClass1 op1)
中的关键字implicit在C#中的释意是什么?
...全文
67 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenwei1108 2009-07-19
  • 打赏
  • 举报
回复
感谢所有朋友的热心帮助。再次感谢!
zhouzangood 2009-07-18
  • 打赏
  • 举报
回复
ding
lc1062 2009-07-18
  • 打赏
  • 举报
回复
implicit 关键字用于声明隐式的用户定义类型转换运算符。如果转换过程可以确保不会造成数据丢失,则可使用该关键字在用户定义类型和其他类型之间进行隐式转换。

class Digit
{
public Digit(double d) { val = d; }
public double val;
// ...other members

// User-defined conversion from Digit to double
public static implicit operator double(Digit d)
{
return d.val;
}
// User-defined conversion from double to Digit
public static implicit operator Digit(double d)
{
return new Digit(d);
}
}
class Program
{
static void Main(string[] args)
{
Digit dig = new Digit(7);
//This call invokes the implicit "double" operator
double num = dig;
//This call invokes the implicit "Digit" operator
Digit dig2 = 12;
Console.WriteLine("num = {0} dig2 = {1}", num, dig2.val);
Console.ReadLine();
}
}
paulin 2009-07-18
  • 打赏
  • 举报
回复
表明定义的类型间可以隐式转换
例子就3楼那样
玖伍叁柒 2009-07-18
  • 打赏
  • 举报
回复
隐式转换的意思,
ConvClass2 n;
ConvClass1 m;
n = m;
这里就用到了你的重载方法了

还有一个explilcit与之相对,是显式转换的意思。
如果是explilcit,那么就要n = (ConvClass2)m;

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧