一般的な方法の把握に問題があります。一般的な方法 - コードの複製
私は生成される2つのクラスを持っています(それらはまったく同じですが、同じクラスオブジェクトを使用するためにコードを反応させることはできません)。ここ
はクラスです:あなたはクラス1とクラス2が同じである見ることができるように
public class1 : SoapHttpClientProtocol {
public partial class notificationsResponse {
private ResponseType[] responsesField;
private bool ackField;
/// <remarks/>
public ResponseType[] Responses {
get {
return this.responsesField;
}
set {
this.responsesField = value;
}
}
/// <remarks/>
public bool Ack {
get {
return this.ackField;
}
set {
this.ackField = value;
}
}
}
}
public class2 : SoapHttpClientProtocol {
public partial class notificationsResponse {
private ResponseType[] responsesField;
private bool ackField;
/// <remarks/>
public ResponseType[] Responses {
get {
return this.responsesField;
}
set {
this.responsesField = value;
}
}
/// <remarks/>
public bool Ack {
get {
return this.ackField;
}
set {
this.ackField = value;
}
}
}
}
。彼らはインラインクラスであるため、私は重複を持たなければなりません。それと
さておき、私はパラメータとしてこれらのクラス型でupdateメソッドを呼び出すようにしようとしている:
private void UpdateMessageResponses<T>(T results)
{
T responses = (T)results;
foreach (var accts in results.Responses)
{
int row = GetRowIdByAccountId(accts.ObjectId);
if (row != -1)
{
TestResultsGrid["Status", row].Value = String.Format("{0} {1} - {2} - {3}", accts.ResponseDate, accts.ObjectType, accts.Message, accts.ObjectId);
}
}
}
私は結果のプロパティにアクセスできるように、私は適切な結果をキャストすることができますか?
C#のジェネリックはC++のテンプレートではないということです。ジェネリックは本当に_generic_です。それらはANY型でパラメータ化することができるように設計されています。あなたは、2つのタイプのうちの1つだけで構築できるものが必要です。ジェネリック医薬品はそうするようには設計されていなかった。自分が見つけた状況は非常に不幸です。 2つの生成された型を共通のインタフェースを実装することができれば、メソッドはそのインタフェースを実装するものを参照することができます。 –