2010-07-21 4 views

Répondre

9

Oui, il le fera. Voici un exemple montrant en action:

struct Foo 
{ 
    public int X; 
    public Bar B; 
} 

struct Bar 
{ 
    public int Y; 
} 

public class Program 
{ 
    static void Main(string[] args) 
    { 
     Foo foo; 
     foo.X = 1; 
     foo.B.Y = 2; 

     // Show that both values are copied. 
     Foo foo2 = foo; 
     Console.WriteLine(foo2.X);  // Prints 1 
     Console.WriteLine(foo2.B.Y); // Prints 2 

     // Show that modifying the copy doesn't change the original. 
     foo2.B.Y = 3; 
     Console.WriteLine(foo.B.Y); // Prints 2 
     Console.WriteLine(foo2.B.Y); // Prints 3 
    } 
} 

Que diriez-vous si ce struct contient un autre struct?

Oui. En général, cela peut être une mauvaise idée de créer des structures aussi complexes - elles ne devraient généralement contenir que quelques valeurs simples. Si vous avez des structs à l'intérieur des structs à l'intérieur des structs, vous pourriez vouloir considérer si un type de référence serait plus approprié.

1

Oui. C'est correct

Questions connexes