私は、データベース内のテーブルからリストを取得しています:C#ジェネリックリスト
var dependency = (from ctf in dc.Fields
join ctfd in dc.FieldsDependencies on ctf.id equals ctfd.Fieldid_depend
where ctf.ctid == ctid && ctf.fieldname == fieldname
select ctfd).ToList();
私は別の関数にパラメータとしてこのリストを渡しています:
public void DoYesDeleteDepField<T>(string fieldname, List<T> dep)
どのように私ができますidフィールドを取得できるように変更しますか?
しかし、私はリストを反復できず、depsingle.idフィールドを取得します。 IHasId またはクラスレベル
なぜ機能は、一般的なのですか?そのため、特定のタイプのフィールドにはアクセスできません。 Tは一般的なもので、特定のタイプの特定のフィールドにアクセスしようとしています。 – user3185569
あなたは 'var desingleid = depsingle.id'を意味しましたか? – MotKohn
さて、 'T'は' id'か何かについて知りません。それがエラーになるのです。タイプに汎用制約を追加して、ベースクラスから継承するタイプのみを許可するか、インターフェースを実装する必要があります。また、1つのタイプにのみ興味がある場合は、ジェネリックを省略することもできます。 – HimBromBeere