.net 在一些查询lib中,尤其是那些流向web服务的lib。IMHO:第一个选项最好是泛型的,这样就可以使用类型推断,这甚至更好。 AHelper.RetrieveByID(string id); AHelper.RetrieveByName(string na

.net 在一些查询lib中,尤其是那些流向web服务的lib。IMHO:第一个选项最好是泛型的,这样就可以使用类型推断,这甚至更好。 AHelper.RetrieveByID(string id); AHelper.RetrieveByName(string na,.net,abstract-class,static-methods,interface-design,.net,Abstract Class,Static Methods,Interface Design,在一些查询lib中,尤其是那些流向web服务的lib。IMHO:第一个选项最好是泛型的,这样就可以使用类型推断,这甚至更好。 AHelper.RetrieveByID(string id); AHelper.RetrieveByName(string name); AHelper.DumpToDatabase(); AHelper a = new AHelper(); a.DumpToDatabase(); static class HelperMethods { //IHelper h =


在一些查询lib中,尤其是那些流向web服务的lib。IMHO:第一个选项最好是泛型的,这样就可以使用类型推断,这甚至更好。 AHelper.RetrieveByID(string id); AHelper.RetrieveByName(string name); AHelper.DumpToDatabase(); AHelper a = new AHelper(); a.DumpToDatabase();
static class HelperMethods
 {  //IHelper h = new HeleperA();
    //h.DumpToDatabase() 
    public static void DumpToDatabase(this IHelper helper) { /* ... */ }

    //IHelper h = a.RetrieveByID(5)
    public static IHelper RetrieveByID(this ObjectA a, int id) 
     { 
          return new HelperA(a.GetByID(id));
     }

    //Ihelper h = b.RetrieveByID(5)       
    public static IHelper RetrieveByID(this ObjectB b, int id)
     { 
          return new HelperB(b.GetById(id.ToString())); 
     }
 }
static [return type] Helper.RetrieveByID(ObjectX x) 
public static AObject RetrieveByID(string ID) { QueryResult qr = webservice.query("SELECT Id,Name FROM AObject WHERE Id = '" + ID + "'"); return (AObject)qr.records[0]; } public static BObject RetrieveByID(string ID) { QueryResult qr = webservice.query("SELECT Id,Name,Company FROM BObject WHERE Id = '" + ID + "'"); return (BObject)qr.records[0]; }
static AObject GetAObject(string id);
static BObject GetBObject(string id);
class AOrBObject
{ 
   string id;
   AOrBObject(string id) {this.id = id;}

   static public AOrBObject RetrieveByID(string id)
   {
        return new AOrBObject(id);
   }

   public static AObject explicit operator(AOrBObject ab) 
    { 
        return AObjectQuery(ab.id);
    }

   public static BObject explicit operator(AOrBObject ab)
    { 
        return BObjectQuery(ab.id);
    } 
}
 var a = (AObject) AOrBObject.RetrieveByID(5);
 var b = (BObject) AOrBObject.RetrieveByID(5); 
public static T RetrieveByID<T>(string ID)
{
     var fieldNames = getFieldNamesBasedOnType(typeof(T));
     QueryResult qr = webservice.query("SELECT "+fieldNames + " FROM "
                                     + tyepof(T).Name
                                     +" WHERE Id = '" + ID + "'");
     return (T) qr.records[0];
}