3
我知道从原语派生一个类是不可能的,但是,我希望我的类'看起来'像是一个没有投射的原始类。在这种情况下,我班将操作就像一个十进制:C#包装原语
public interface IFoo
{
static explicit operator Decimal(IFoo tFoo);
}
public class Foo: IFoo
{
private Decimal m_iFooVal;
public Decimal Value
{
get { return m_iFooVal; }
set { m_iFooVal= value; }
}
static explicit operator Decimal(IFoo tFoo)
{
return (tFoo as Foo).Value;
}
}
上面的代码不起作用,因为明确的操作员可以在界面上没有定义。我的代码处理接口,我想保持这样。是否有可能将IFoo转换为十进制?欢迎任何替代品。例如:
IFoo tMyFooInterfaceReference = GetFooSomehow();
Decimal iVal = tMyFooInterfaceReference;
这是正确的做法。接口定义了合同,类实现了合同,而世界其他地方*知道合同是什么*,与假设的转换不同。 – 2010-09-28 19:44:57