Termini di programmazione: campo, membro, proprietà (C #)

Stavo cercando di trovare il significato di questi termini, ma soprattutto a causa della barriera linguistica non ero in grado di capire per cosa sono usati. Suppongo che “campo” sia variabile (object anche?) Nella class mentre “proprietà” è solo un object che restituisce un valore specifico e non può contenere metodi ecc. Per “membro” capisco qualsiasi object che è dichiarato a livello di class. Ma queste sono solo le mie supposizioni basate su esempi di codice commentati in cui alcuni programmatori attenti hanno usato “proprietà regione” ecc. Apprezzerei molto se qualcuno potesse spiegarmelo.

In C #:

campi : sono variabili dichiarate a livello di class.

public class SomeClass { private int someInteger; // This is a field public double someDouble; // This is another field protected StringBuidler stringBuidler; // Still another field } 

Proprietà : spesso utilizzate come accessor per un campo privato di una class, possono fornire metodi get e set che racchiudono alcune logiche sulla manipolazione del campo.

 public class SomeClass { private StringBuilder stringBuilder; // Property declaration public StringBuilder StringBuilder { get { if(this.stringBuilder == null) this.stringBuilder = new StringBuidler(); return this.stringBuilder; } set { if(this.stringBuilder == null) this.stringbuilder = value; } } } 

membri : include campi, proprietà, metodi, eventi di una class.

La terminologia in quest’area è irrimediabilmente confusa e varia selvaggiamente da una lingua all’altra e modella per modello. Hai in mente una lingua o una piattaforma specifica?

Per una prima approssimazione:

  1. Le discussioni SQL utilizzano spesso campi e colonne in modo intercambiabile. Field è anche la terminologia standard per i membri di dati delle classi Java e C #.
  2. Il membro è più comunemente usato in C ++ per riferirsi a funzioni membro , variabili membro e così via, per i diversi membri di una definizione di struct / class.

Questi termini abbracciano lingue diverse e quindi si sovrappongono un po ‘e le differenze riguardano più i linguaggi concreti che il concetto. Proprietà e campo sono usati per descrivere i dati nelle classi, i membri possono essere dati e comportamenti (ad es. Metodi) nelle classi. Tuttavia, ci sono differenze tra proprietà e campi in C # e Java, ma quello è zucchero sintattico. Se stavate usando un linguaggio orientato agli oggetti basato su prototipo (anziché su una class) parlereste di slot di oggetti … Se volete comprendere l’intero significato, scegliete prima una lingua.