2009-07-27 10 views
2

comment nous pouvons utiliser une classe, qui est à l'intérieur dans une autre classe en tant que propriété? Je ne veux qu'une explication théorique et un petit exemple.en utilisant la classe comme une propriété?

+0

Il y a un problème en question. Il est possible de lire ceci comme "classe dans une autre classe ... comme propriété" (classe imbriquée) et "classe ... dans une autre classe comme propriété". –

+0

mon exigence est qu'il ya une classe nommée étudiant, et un autre est enseignant, je prends le nom et l'id de chaque élève et enseignant, mais je fais une relation avec chaque enseignant et chaque élève en utilisant la propriété. aidez-moi à résoudre ce problème – MAC

Répondre

2

Vous voulez dire une classe imbriquée utilisée comme type de propriété? Tant que le modificateur d'accès de la propriété est au plus aussi restrictif que le type de la propriété, vous pouvez le faire. Simplement, vous devriez être en mesure d'accéder au type si vous pouvez voir la propriété.

1
public class Foo{ 
    public string Name; 
} 

public class Bar{ 
    public Foo MyFoo{ get; set; } 
} 
2

Vous pouvez utiliser un type imbriqué comme une propriété, mais si elles sont dans la même classe, ils ne peuvent pas avoir le même nom:

public class Invalid 
{ 
    public Nested Nested { get { return null; } }   
    public class Nested {} 
} 

public class Valid 
{ 
    public Nested NestedFoo { get { return null; } }   
    public class Nested {} 
} 
0

classe B est imbriqué dans la classe A et nous avons un BProperty de propriété en classe a qui donne une instance de la classe B.

public class A 
{ 
    public class B 
    { 
     string m_b1; 
     public string B1 
     { 
      get { return m_b1; } 
      set { m_b1 = value; } 
     } 
    } 
    B m_b = new B(); 
    public A() 
    { 
     m_b.B1 = "Hello World"; 
    } 

    public B BProperty 
    { 
     get { return m_b; } 
     set { m_b = value; } 
    } 
} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     A a = new A(); 
     Console.WriteLine(a.BProperty.B1); 
    } 
} 
0

Supposons que vous ayez une classe (modèle) qui est un moyen d'atteindre d'autres classes. Vous devriez donc avoir une définition (propriété) de ces classes dans le modèle. J'utilise cette théorie dans mes applications. Vous pouvez imaginer le modèle en tant que père d'une grande famille qui peut ordonner aux autres de faire des tâches spécifiques.

Public Class Father 
{ 
private Child _Child=null; 
public Child Child 
{ 
    get{ 
     if(_Child==null) _Child=new Child(); 
     return _Child; 
     } 
} 
} 
Public Class Child 
{ 
    Public void StudyLessons() 
    { 
    ..... 
    } 

} 
0

Vous parlez de la mise en place des relations entre Teachers et Students (espérons-les appropriés). Cela peut être un à un pour les cours privés, ou cela pourrait être un-à-plusieurs si les étudiants assistent à des cours avec les enseignants, ou cela pourrait être plusieurs-à-plusieurs si les étudiants assistent à plusieurs cours. Soit dit en passant, dites à votre professeur que c'est un mauvais exemple à définir, parce qu'il est si ambigu, et parce que le mot "classes" est un terme de domaine cauchemar donné la signification existante du mot class dans OO.

Questions connexes