2009-10-19 10 views
1

J'aime rendre ma base de données plus dynamique avec les fonctions.Utiliser la variable d'une fonction dans une autre fonction sans paramètres?

Comme ceci:

private void setValues() { 
    string test = "foo"; 
    string test2 = "bar"; 
} 
private void WriteToDB() { 
    dc dcOfMyDatabase = new dc(); 

    DBTable myTable = DbTable() { 
     field1 = test; // values of other function 
     field2 = test2; // values of other function   
    } 
} 
private void doAll() { 
    setValues(); 
    WriteToDB(); 
} 

Bien sûr, je peux le faire avec des paramètres dans WriteToDB() ... Mais je tant de domaines et espérons que cela fonctionne avec une autre façon propre. Je suis sûr qu'il y a une manière correcte pour un développement propre quelque chose comme ceci.

Merci et salutations.

Répondre

2

Vous pouvez les promouvoir auprès des membres de la classe ou des propriétés:

string test; 

private void setValues() { 
    test = "foo"; 
} 

ou:

string test {get; set;} 

Vous devriez lire la conception orientée objet et programmation - cela certifiably vous aider à organiser votre code dans un manière plus logique.

+0

Merci, pense que c'est propre. –

3

La bonne façon est en effet de passer des paramètres à WriteToDB. Si le problème est que vous avez beaucoup de paramètres, enveloppez-les dans une classe contenant et passez une instance de cette classe à votre fonction d'écriture. En outre, considérez si l'utilisation d'un moteur ORM (tel que LINQ to SQL ou NHIbernate) au lieu de classes d'accès direct à la base de données peut être utile pour vous.

0

Je ne suis pas sûr de ce que vous essayez de faire ici. Votre extrait de code contient des erreurs et ne serait pas compilé si vous essayiez de l'exécuter. Cela étant dit, si vous cherchez un mappage du code vers DB, je vérifierais Linq To SQL. Here est une courte introduction.

+0

bien sûr il ne le compilerait pas:) ... juste un exemple pour montrer ma structure .. en fait mon exemple fonctionne mais avec beaucoup de code –

Questions connexes