Si votre code personnalisé est juste pour remplir le tableau, C# fournit plusieurs construit façons de le faire (voir All possible C# array initialization syntaxes). Si vous souhaitez que le code s'exécute chaque fois que vous créez une instance d'un type particulier d'objet, vous devez créer une classe qui représente cet objet (vous pouvez également utiliser une méthode d'extension, mais cela devenir confus au fil du temps). Cette classe est peut-être rien de plus qu'une enveloppe autour d'un tableau:
public class MyArray<T>
{
private T[] _array;
public MyArray()
{
// execute your always must run code here!
}
public ArrVal
{
get { return _array; }
set { _array = value; }
}
}
...
MyArray<int> myArray = new MyArray<int>(); // your custom code gets executed when you new up the object here
Cependant, par best practices, vous devriez éviter d'avoir le code dans un constructeur qui fait trop de travail (et dans mon expérience, d'avoir un constructeur qui lance des exceptions peut causer certains problèmes qui sont difficiles à déboguer, bien que MSDN dise qu'il vaut mieux jeter l'exception que de la couvrir). Si ce code doit faire un travail intensif, il peut être préférable de créer une méthode séparée (peut-être quelque chose appelé public void Initialize()
) afin que les appelants puissent réécrire l'objet plus paresseusement.
Vous devriez également éviter d'essayer d'avoir ce fait pour tous les tableaux, parce que je peux vous garantir que ça va causer des problèmes pour vous ou quelqu'un d'autre sur la route quand ils ne peuvent pas comprendre pourquoi int[] arr = new int[3]
fait des choses supplémentaires. Vous devriez chercher à utiliser correctement l'encapsulation ici (c'est-à-dire créer une classe wrapper/extension/decorator).
En outre, il est tout à fait possible que l'une des classes .NET existantes pour Collections répond à vos besoins ... Regardez-les.
Votre question est un peu trop vague. "donc chaque fois que je crée un nouveau tableau, je peux exécuter du code automatiquement?" <- comment voulez-vous remplir le tableau? En boucle? D'une autre collection que vous avez déjà? –
Veuillez ne pas utiliser de tags non pertinents. C'est une question C# - elle ne devrait pas avoir de balise 'java'. –
Pouvez-vous donner un exemple de ce que vous essayez de faire, peu importe à quel point c'est faux? Voulez-vous travailler avec des tableaux tels que 'int []' et 'float []', ou de nouveaux objets que vous définissez comme 'MyObject []'? –