Comment passer et récupérer des parametres ?
Bonjour
Malgré ma longue expérience du C, j'ai encore quelques problèmes conceptuel a digerer certains passage de parametres en cSharp
Je déclare une structure dans une classe
J'y mets quelques info (filename etc)
Je passe cette structure a une Form qui doit completer les infos
Jusque la tout va bien mais je vois pas bien comment recuperer ma structure completée apres l'appel de la form
Dans ma classe qui appelle la form
Code:
1 2 3 4 5
| ImportDef ImpDef = new ImportDef(); // structure d'info
ImpDef.FileName = dlgFile.FileName; // ajout de filename
Form FrmImp = new FrmImportDef(ImpDef); // passage structure par constructeur
FrmImp.ShowDialog(); |
Ensuite pour l'utilisation dans la form
Code:
1 2 3 4 5 6 7 8 9
| public partial class FrmImportDef : Form
{
ImportDef ImpDef; // reference pour ma structure dans la form
public FrmImportDef(ImportDef PRM_ImpDef)
{
ImpDef = PRM_ImpDef; // assignation de la structure a la reference
InitializeComponent();
Timp();
} |
Je comprends que je ne passe pas un pointeur...
Mais comment dois-je organiser le passage de parametre pour qu'a la fermeture de la form appelée je puisse recuperer les info modifiées dans ImpDef
classe au lieu de structure
Tu a sans doute raison
J'utilise des structures par habitude du C
Et j'avais aussi le sentiment que les classes en csharp c'etait chaque fois des fichiers différents !
Une classe par fichier ....
Une classe par fichier ?
Ca dépends..
A mon avis pour des petites classes de regroupement de variables, c'est pas plus mal de les colectionner dans un meme fichier
Dans le cas ci apres j'ai transformé ma structure ImpDef en classe
et S_ImportInfo va suivre le meme chemin.
Elles sont toutes les deux dans le fichier qui contient aussi la classe methode
Il y a certainement a débattre sur cette manière, mais c'est simple clair et efficace
Or je défends TOUJOURS la clarté et la simplicité AVANT methode theorique
Mais les suggestions pertinentes sont toujours bienvenues.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| namespace Mapscope.Import
{
public struct S_ImportInfo
{
public string filename; // nom du fichier importe
public uint nbRow; // Nombre de row lus
public uint nbDistinct; // Nombre code reconnus distinct
public uint nbFound; // Nombre de row importés et code reconnu
public uint nbNotFound; // Nombre de row importés et code NON reconnu
public uint nbEmpty; // nombre d'entités non affectées
public uint nbRowNul; // nombre de row matchés avec valeurs nulles
public uint nbNulResult; // nombre d'entités reconues mais restées a zero
}
public class ImportDef
{
public int isValid; // set to 1 if definition is valid
public int ColCode; // indice colonne code
public int ColValue; // indice colonne valeur
public int HeaderRow; // indice row header (NoHeader = -1)
public int FirstDataRow; // indice first data row (default = -1)
public string Separators; // Separateurs
public string FileName; // full file name
};
public static class CImport
{
} |