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