2012-01-09 10 views
1

をオーバーロード:私は、コードのこの部分を持って、明示的なCAST演算子

public class Leg : ProxiestChild 
{ 
    public virtual Name { get; set; } 
} 

問題がある:

var leg = new Leg(); // leg is not Leg, instead ProxiedLeg 

var trueleg = (Leg)leg; // exception leg is a ProxiedLeg 

私はあなたがカスタム型キャストを実装することができ、この

public class ProxiestChild 
{ 
    // some method that overloads explicit CAST 
    // where receiving the proxied object i returns the unproxied object 
    // to be casted 
} 
+2

これは役立つかもしれません:http://msdn.microsoft.com/en-us/library/85w54y0a(v=VS.100).aspx –

+9

あなたのコードは、脚。問題を実際に示す短くて完全なプログラムを見せることができますか?なぜこれをやりたいのかについてより多くの文脈を与えることができますか? –

+0

@Adam Houldsworthはちょうど私が必要だったものです(かなりクールなリンク)、ありがとう、あなたはそれを評価するためにあなたの答えを聞かせてもらえますか? – manuellt

答えて

10

ようなものが必要変換演算子implicitまたはexplicitをここで詳しく説明します:

http://msdn.microsoft.com/en-us/library/85w54y0a(v=VS.100).aspx

は、読みやすくするために、多くの場合、魔法の他にキャスト1種類を見て混乱することができ、これには注意がない - 人々は常に最初のプレイで変換演算子があるとは思いません。

関連する問題