0

さまざまな種類のリストがあり、選択したリストに基づいて、グリッドにデータを入力する必要があります。これらのリスト アイテム クラスは次のように定義されます。

public class plist
{
    public DateTime date_modified { get; set; }
    public DateTime date_added { get; set; }
}

public class cList1 :plist
{
    public string code { get; set; }
    public string name { get; set; }
}

public class cList2 : plist
{
    public string typename { get; set; }
    public int typecode { get; set; }
}

私の Web ページでは、選択したリストに基づいてコントロールを設定する必要がありclist1ますclist2

protected void Page_Load(object s,EventArgs e)
{
    List<cList1> codes = new List<cList1>();
    List<cList2> types = new List<cList2>();

    switch (getGrpSelValue())
    {
        case (int)LookupType.LU1:
            codes = getMyCodes(0, null, null);
            bindMyGrid(cList1, masterGrd);
            break;
        case (int)LookupType.LU2:
            types = getMyTypes(0, null, null);
            bindMyGrid(cList2, masterGrd);
            break;
        default:
            break;
    }
}

public void bindMyGrid<T>(List<T> list, GridView gv)
{
    //binds the grid here
}

1 つのジェネリック リスト オブジェクトを宣言し、それにコードまたは型を割り当てて、メソッドを 1 回呼び出すbindMyGrid方法はありますか?

4

1 に答える 1

0
var codes = new List<object>();

if (condition)
    codes.Add(someClass1);
else
    codes.Add(someClass2);

objectに任意のオブジェクトを として格納できますList<object>

とにかく、これの目的がわかりません。さまざまなパラメーターを指定してジェネリック メソッドを呼び出してみませんか?

if (condition)
    BindMyGrid<Class1>(someListClass1);
else
    BindMyGrid<Class2>(someListClass2);
于 2013-06-12T16:00:15.980 に答える