Je définis ces variables dans mon code, je souhaite les initialiser en une seule étape, comment puis-je faire cela?

int currentYearSavingDays, currentYearSavingXMins, currentYearSavingNXMins, currentYearUsedDays, currentYearUsedXMins, yearLimitRemainingDays, yearLimitRemainingXMins, totalYearlyDays, totalYearlyXMins, totalSavingDays, totalSavingMins, totalUsableDays, totalUsableMins, nextYearTotalUsableDays, nextYearTotalUsableMins, dayWorkMinutes, previousYearRemainingDays, previousYearRemainingMins;

Par exemple:

currentYearSavingDays, currentYearSavingXMins, currentYearSavingNXMins, currentYearUsedDays, currentYearUsedXMins, yearLimitRemainingDays, yearLimitRemainingXMins, totalYearlyDays, totalYearlyXMins, totalSavingDays, totalSavingMins, totalUsableDays, totalUsableMins, nextYearTotalUsableDays, nextYearTotalUsableMins, dayWorkMinutes, previousYearRemainingDays, previousYearRemainingMins = 0;
c#
4
mhd.cs 27 janv. 2019 à 18:06

3 réponses

Meilleure réponse

Le mieux que je connaisse est celui-ci.

int currentYearSavingDays, currentYearSavingXMins, currentYearSavingNXMins, currentYearUsedDays, currentYearUsedXMins, yearLimitRemainingDays, yearLimitRemainingXMins, totalYearlyDays, totalYearlyXMins, totalSavingDays, totalSavingMins, totalUsableDays, totalUsableMins, nextYearTotalUsableDays, nextYearTotalUsableMins, dayWorkMinutes, previousYearRemainingDays, previousYearRemainingMins;
currentYearSavingDays = currentYearSavingXMins = currentYearSavingNXMins = currentYearUsedDays = currentYearUsedXMins = yearLimitRemainingDays = yearLimitRemainingXMins = totalYearlyDays = totalYearlyXMins = totalSavingDays = totalSavingMins = totalUsableDays = totalUsableMins = nextYearTotalUsableDays = nextYearTotalUsableMins = dayWorkMinutes = previousYearRemainingDays = previousYearRemainingMins = 0;
5
Uwe Keim 27 janv. 2019 à 15:15

Je froncerais les sourcils à l'idée de les déclarer tous à la fois. En plus d'être moche à lire, ce n'est pas nécessaire.

Au lieu de cela, cela semble être un excellent candidat pour un ensemble de champs pour un class ou struct.

En C #, champs de type de valeur sont alloués et automatiquement initialisés à leur valeur par défaut par le gestionnaire de mémoire. Donc, dans ce cas particulier, si vous aviez créé une nouvelle classe / structure uniquement pour ces valeurs, vous n'auriez pas à les initialiser explicitement.

Notez que vous pouvez simplement les laisser en tant que champs dans la classe actuelle, tant que vous faites attention à ne pas enfreindre le principe de responsabilité unique.

Notez également que la stratégie décrite dans cette réponse ne fonctionnera pas s'il s'agit de variables locales. Comme cette réponse l'explique, alors que la sémantique d'initialisation est la même, l'utilisation de variables locales non initialisées est généralement un bogue et n'est pas autorisée en C #. Dans ce cas, il serait préférable, à mon avis, de déclarer et d'initialiser chaque variable sur sa propre ligne.

5
theMayer 27 janv. 2019 à 15:36

Vous pouvez déclarer et initialiser comme ceci:

int iOne = 1, iTwo = 2, iThree = 3;

L'initialisation de la variable est facultative

Cette ligne

   int iOne,iTwo,iThree;

Aurait toutes les variables mises à zéro.

Variables Microsoft Docs

0
Chris Catignani 27 janv. 2019 à 15:36