我知道无法从原始类型派生出一个类,但是我希望我的类在不进行强制转换的情况下“看起来”像一个原始类型。在这种情况下,我的类将会像一个十进制数一样操作:
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转换为Decimal?欢迎提供任何替代方案。示例:
IFoo tMyFooInterfaceReference = GetFooSomehow();
Decimal iVal = tMyFooInterfaceReference;