1

プロパティ クラス参照をメソッドに渡したいと思います。例えば:

Class SQLiteTables
{
    public class tblPersonnel
    {
        public int PsnID { get; set; }
        public string PsnFirstName { get; set; }
        public string PsnMiddleName { get; set; }
        public string PsnLastName { get; set; }
    }
    public class tblSchedules
    {
        public int SchID { get; set; }
        public string SchDescription { get; set; }
        public DateTime SchStartDtm { get; set; }
        public DateTime SchEndDtm { get; set; }

    ...

    public class TableName
    {
        public int Field1 { get; set; }
        public string Field2 { get; set; }
        public string Field3 { get; set; }

        ...

        public string FieldN { get; set; }
    }
}

次のようなメソッドを作成したいと思います。

public void ThisMethod(PropertyClass propertyclassname)
{
        List<propertyclassname> TempList = dbConn.Table<propertyclassname>().ToList<propertyclassname>();
}

そして、次のように使用します。

ThisMethod(tblPersonnel);
ThisMethod(tblSchedules);

プロパティごとに複数のメソッドを作成しないようにしています。再利用可能なメソッドにしたいのですが、どうすればよいかわかりません。よろしくお願いします!

4

3 に答える 3

1

ジェネリックを使用する必要があります。

public void ThisMethod<T>(T mySet) where T : MySetBaseClass
{
    ...
}

メソッドで何をしたいのか、誰がそれを呼び出しているのか?

于 2014-02-14T10:01:13.883 に答える
0

あなたが達成しようとしていることは、実際のロジックではそれほど簡単ではありませんが、次のように変更すると解決する可能性があります

public abstract class PropertySetBase
     {
           public  abstract int Property_int1 { get; set; }
        public abstract string Property1 { get; set; }
        public abstract string Property2 { get; set; }
        public  abstract  string Property3 { get; set; }
     }   

ファーストクラス

    public class PropertySet1:PropertySetBase
    {

    public override int  Property_int1
{
      get 
    { 

    }
      set 
    { 
    }
}

public override string  Property1
{
      get 
    { 
    }
      set 
    { 

    }
}

public override string  Property2
{
      get 
    { 
    }
      set 
    { 
    }
}

public override string  Property3
{
      get 
    {   
    }
      set 
    { 
    }
}
}

セカンドクラス

    public class PropertySet2:PropertySetBase
    {

public override int  Property_int1
{
      get 
    { 
    }
      set 
    { 
    }
}

public override string  Property1
{
      get 
    { 
    }
      set 
    { 
    }
}

public override string  Property2
{
      get 
    { 
    }
      set 
    { 
    }
}

public override string  Property3
{
      get 
    { 

    }
      set 
    { 

    }
}
}

ここで、プロパティクラスを受け入れるためにメソッドをどのように記述する必要があるか

public void ThisMethod( PropertySetBase propertyclassname)
{

}
于 2014-02-14T10:00:30.367 に答える