none
Objet Stack.Clone() RRS feed

  • Question

  • Impossible d'utiliser la méthode publiques Clone sur un objet Stack :

    le code suivant fait une erreur de compilation :

    namespace ApplTest

    {

    public partial class Form1 : Form

    {

    public Stackstring[,]> myStack = new Stack<string[,]>() ;

    .

    .

    .

    public Form1()

    {

    InitializeComponent() ;

    }

    private void Appltest_Load(object sender, Eventargs e)

    {

     

    ..... myStack.Clone()   ---> génère une erreur manque using ? mais lequel

     

    Merci si quelqu'un peut m'éclairer, car dans la doc MSDN la méthodes Clone existe bien pour la class Stack

     

     

    lundi 7 janvier 2008 14:39

Réponses

  • Je ne pense pas confondre, mais je pense que ma question a été mal comprise ou je me suis mal exprimé.

    le pb venez tous simplement d'un pb de Cast.

    Il faut écrire par exemple :

    public Stack<int[,]> myStack = new Stack<int[,]> ;

    public Int32[,] MyValues = new Int32[5,5] ;

    public Int32[,] MyvaluesClone = nex Int32[5,5] ;

    .

    .

    if (MyValuesClone.GetType() == MyValues.Clone().GetType() )    // -> donne True

    { MyValuesClone = (Int32[,]) MyValues.Clone(); }               // et NON MyValuesClone() = MyValues.Clone() ;

    .

    .

    MyStack.Push( (Int32[,])  Myvalues.Clone() ) ;                  // et NON MyStack.Push( MyValues.Clone() ) ;

     

    merci néanmoins pour votre aide

    BRI_67

    samedi 12 janvier 2008 18:38

Toutes les réponses

  • Vous confondez la classe Stack non générique du namespace System.Collections qui existe depuis .NET1.0 qui implémente l'interface IClonable et la classe GENERIQUE Stack du namespace System.Collections.Generic qui existe depuis .NET2.0 ne n'implémente pas IClonable.
    mardi 8 janvier 2008 09:42
  • Je ne pense pas confondre, mais je pense que ma question a été mal comprise ou je me suis mal exprimé.

    le pb venez tous simplement d'un pb de Cast.

    Il faut écrire par exemple :

    public Stack<int[,]> myStack = new Stack<int[,]> ;

    public Int32[,] MyValues = new Int32[5,5] ;

    public Int32[,] MyvaluesClone = nex Int32[5,5] ;

    .

    .

    if (MyValuesClone.GetType() == MyValues.Clone().GetType() )    // -> donne True

    { MyValuesClone = (Int32[,]) MyValues.Clone(); }               // et NON MyValuesClone() = MyValues.Clone() ;

    .

    .

    MyStack.Push( (Int32[,])  Myvalues.Clone() ) ;                  // et NON MyStack.Push( MyValues.Clone() ) ;

     

    merci néanmoins pour votre aide

    BRI_67

    samedi 12 janvier 2008 18:38