La domanda suggerisce che entrambe le classi e le funzioni non possono essere usate insieme, questo non è vero. Tratterò il livello più basilare delle funzioni qui dal suggerita domanda duplicata copre altri vantaggi / usi delle classi rispetto alle funzioni statiche .
Nelle classi di livello più elementare è sufficiente memorizzare uno stato in modo che possa essere passato da e verso le funzioni. Tieni presente che gli esempi si trovano in C #, ma ciò non dovrebbe influire sulla risposta o sulla comprensione.
public IEnumerable<OrderDetail> GetOrderDetailsForDisplay(string sapCustomerID, DateTime deliveryDate, string orderType)
{
...
}
public IEnumerable<OrderDetail> GetOrderDetailsForDisplay(Order order)
{
...
}
La prima funzione sopra non usa una classe nel suo elenco di parametri, dandoci 4 parametri. La seconda funzione sopra appena passa un oggetto ordine poiché i parametri sapCustomerID, deliveryDate e orderType descrivono un ordine.
Allo stesso modo, l'immagine se la funzione (s) di cui sopra non ha restituito un insieme di oggetti OrderDetail
. La classe OrderDetail
ha molte proprietà ad essa associate (vedi sotto).
public class OrderDetail
{
public long ID { get; set; }
public long OrderID { get; set; }
public int ProductID { get; set; }
public short Quantity { get; set; }
public bool IsClosed { get; set; }
public DateTime DeliveryDate { get; set; }
public DateTime BranchDeliveryDate { get; set; }
public DateTime TransferToSAPOn { get; set; }
public string CreatedBy { get; set; }
public DateTime CreatedOn { get; set; }
public string ModifiedBy { get; set; }
public DateTime? ModifiedOn { get; set; }
public int? InventoryQuantity { get; set; }
public bool IsProductAvailable { get; set; }
}
Quindi potresti vedere come dover restituire questi numerosi campi / valori potrebbe essere noioso o difficile.
Per ulteriori informazioni su questo argomento, suggerisco di rivedere i collegamenti forniti nei commenti da gnat e CandiedOrange . Spero che questo aiuti a rispondere alla tua domanda almeno un po '.