在我们自己的类中这样定义会产生编译错误:
public class StaticMethod
{
public int m_id;
public StaticMethod(int id)
{
m_id = id;
}
public static void WriteId_Static()
{
Console.WriteLine(m_id);
}
public void WriteId_Instance()
{
Console.WriteLine(m_id);
}
}而今天在MSDN查自定义类型转换操作符时,这样定义了:
class Digit
{
public Digit(double d) { val = d; }
public double val; public static implicit operator double(Digit d)
{
return d.val;
} public static implicit operator Digit(double d)
{
return new Digit(d);
}
}
http://msdn.microsoft.com/zh-cn/library/z5z9kes2(v=vs.80).aspx请问这是为什么呢?难道自定义转换操作符不是方法?
在C#中还有没有类似的情况,请前辈们谈一谈,小弟以后编码也好注意。
public class StaticMethod
{
public int m_id;
public StaticMethod(int id)
{
m_id = id;
}
public static void WriteId_Static()
{
Console.WriteLine(m_id);
}
public void WriteId_Instance()
{
Console.WriteLine(m_id);
}
}而今天在MSDN查自定义类型转换操作符时,这样定义了:
class Digit
{
public Digit(double d) { val = d; }
public double val; public static implicit operator double(Digit d)
{
return d.val;
} public static implicit operator Digit(double d)
{
return new Digit(d);
}
}
http://msdn.microsoft.com/zh-cn/library/z5z9kes2(v=vs.80).aspx请问这是为什么呢?难道自定义转换操作符不是方法?
在C#中还有没有类似的情况,请前辈们谈一谈,小弟以后编码也好注意。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货