インターフェイスを作成していて、別のリストタイプを処理できるようにするためには、どうすればよいですか?インターフェイス内の一般的なリスト
私は
interface iGeneric
{
void Add(object obj);
void Delete(object obj);
void Update(object obj);
object View(object obj);
}
そして使用しています。このインタフェースが、そのない権利ジェネリックリストのタイプ、またはタイプを試してみました、私はList<Person>
のリストに使用するクラス、List<Charge>
、List<Other>
を使用していますiGenericインタフェース理想的
public class Charge : iGeneric
{
public Charge()
{
Description = "na";
}
public void Add(object obj)
{
//Add a new charge to the database
List<Charge> myCharge = new List<Charge>();
string cn = ConfigurationHelper.getConnectionString("Scratchpad");
using (SqlConnection con = new SqlConnection(cn))
{
con.Open();
try
{
using (SqlCommand command = new SqlCommand("INSERT INTO tblCharge ([Description],[Amount]) VALUES (@Description, @Amount)", con))
{
command.Parameters.Add(new SqlParameter("Description", NewCharge.Description));
command.Parameters.Add(new SqlParameter("Amount", NewCharge.Amount));
command.ExecuteNonQuery();
}
MessageBox.Show("New Charge added successfully");
}
catch (Exception)
{
Console.WriteLine("Failed to insert new charge.");
}
}
を継承チャージクラスは、私がdefin時に各リストとクラスを設定したいと思いますつまり、リスト
List<Charge> myCharge = new List<Charge>();
List<Person> myPerson = new List<Person>();
List<Other> myOther = new List<Other>();
"それが好きではない" - それはどういう意味ですか?どのようなエラーメッセージですか?どのような観測ですか? 'Charge.Add'は' object'を期待していますが、 'iGeneric.Add'は' T'を期待しています。これはコンパイルできません。そして、あなたの質問には下のコードブロック(さまざまなリストを初期化する場所)は何をするのでしょうか? –
私はそれをインラインにするためにそれを変更しました...リストTを試しましたが、正しい構文/コマンドはありませんでした。一番下のブロックは3つのリストです。インターフェイス経由で使用したいリストです。インターフェイスは、私が渡したリストをすべて取ることができるはずです – Ggalla1779
「それが好きではない」という意味はまだありません。また、私はあなたが何を求めているのか、何を達成しようとしているのかについても分かりません。あなたの質問を明確にしてください。たとえば、最終的には、次のように書いています。「理想的には、リストを定義するときに各リストとクラスを設定したい、しかし、次のコードブロック(リストの初期化)はうまく見えますが、何が問題なのですか? –