|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2003
Città: Ferrara
Messaggi: 5947
|
[C#] Quesito su classi o oggetti
Salve,
Vi chiedo una mano con un quesito per un neofita di C#. Ho fatto un programmino di una decina di migliaia di righe di codice. E tutto funziona (dopo molti tentativi). In pratica è una specie di database quidi ho una lista di oggetti definiti in una classe. Ho dentro la classe in int che identifica che tipo di oggetto sia. Se fosse di un tipo allora uso una stringa, atrimenti un intero. In pratica ora è fatta così: { int identificatore; string dato1; int dato2; } In pratica uso o la stringa dato1 o dato2. Così facendo mia lloca entrambe le variabili. C'è modo di fare allocare solo quelle di cui ho bisogno? Gestendo centinaia di migliaia di oggetti nella lista mi farebbe comodo allocare meno dati. Idee? Grazie
__________________
Ho fatto affati con.... troppi ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Per come hai enunciato il problema io userei i generics:
Codice:
class Data<T> { int Identificatore {get;set;} T Dato {get;set;} } Codice:
class Base { int Identificatore {get;set;} } class StringData : Base { string Dato {get;set;} } class IntData : Base { int Dato {get;set;} } |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Jun 2003
Città: Ferrara
Messaggi: 5947
|
Quote:
Innanzitutto grazie del consiglio. Mi vado a vedere come funzionano queste cose che mi hai suggerito. Grazie ancora
__________________
Ho fatto affati con.... troppi ![]() |
|
![]() |
![]() |
![]() |
#4 | |||||
Senior Member
Iscritto dal: Apr 2008
Città: Lissone, Monza Brianza
Messaggi: 3946
|
Le "cose" suggerite si chiamano "property"
Sono dei meccanismi automatici del linguaggio C# per semplificare il set e il get di una variabile. In sostanza, tu dovresti scrivere : Quote:
La differenza tra i due è quando hai bisogno di integrare determinate logiche all'interno del "set" e del "get". Nell'esempio seguente posso far tornare una stringa o un qualsiasi oggetto dalla funzione, al contrario della "property" che ritorna obbligatoriamente il tipo di dato fornito in base di dichiarazione. Quote:
Quote:
Quote:
Ad esempio Quote:
Spero che ti sia tutto chiaro ![]()
__________________
Corsair 4000D AIRFLOW WHITE - Corsair HX1000 - ASUS TUF GAMING B850-PLUS WIFI - AMD Ryzen 7 7800X3D - ARCTIC MX-6 - Thermalright Frozen Infinity 360 WHITE - ORICO Raceline Neon DDR5 32GB 6000MHz CL30 - fanxiang S880 1TB NVMe 1.4 Gen4x4 - WD Blue WD10EZEX 1TB - Jungle Leopard Splicing ARGB V2RS - Sapphire PURE AMD RX 9070 XT GAMING OC 16GB - MHDUYEG Supporto VGA 74-120mm - Razer BlackWidow Elite - Logitech MX Master 3 Wireless - ASUS TUF VG34VQL3A |
|||||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:51.