2017-01-26 4 views
0

私は遠隔から呼び出すことのできるいくつかのメソッドを私に提供するプロバイダがあると想像してください。Cで汎用サービスプロバイダの呼び出しを行うには?

MyProviderManager.Provider.CallMyFunction(int x, int y, int z); 

私は、特定の変数がそれを拡張する別のクラスで作成されるいくつかの方法で使用されるクラスを持っています。

例えば

[DataContract, Serializable] 
public class InfoStatusServices 
{ 
     [DataMember] 
     public int Id { get; set; } 

     [DataMember] 
     public char TypeService { get; set; } 

     [DataMember] 
     public string IdUser { get; set; } 

     [DataMember] 
     public bool ResultStatus { get; set; } 
} 

そして、もう一つは、それを拡張する

[DataContract, Serializable] 
public class InfoStatusServicesXPTO : InfoStatusServices 
{ 
    [DataMember] 
    public decimal? Balance { get; set; } 
} 

私の質問である、と仮定があるクラスを使用する方法の異なるタイプのカップルInfoStatusServices

MyProviderManager.Provider.CallMyFunctionDark(InfoStatusServices info); 
MyProviderManager.Provider.CallMyFunctionBlue(InfoStatusServices info); 

私はこれらのinsteaを呼び出すための一般的な方法を作ることができる適切な方法がありますか?すべての色のためのメソッドを作成していますか?

public enum Color 
{ 
     None = 0, Black = 1, ... 
} 

をして、あなたは、2番目のパラメータとして、この引数を使用することができます。

+0

私は理解してかどうかわからないのですが、明らかな方法は色のための別のパラメータを追加することです。 – Husain

答えて

1

あなたは色の列挙を作成することができます。だから、色に応じて、同じシグネチャを持つメソッドは、単一の方法としてepxressedすることができます。

.CallMyFunction(InfoStatusServices info, Color color) 

だから黒い色のため、このメソッドを呼び出すと、これを好きになるでしょう:

.CallMyFunction(info, Color.Black) 
関連する問題