2009-07-27 10 views
2

私たちは1クラスをどのように使用できますか?これは別のクラスの内部にありますか?私は理論的な解説と小さな例がほしい。クラスをプロパティとして使用していますか?

+0

問題があります。これを「クラスを別のクラスにプロパティとして」(ネストされたクラス)や「クラスを別のクラスにプロパティとして」などのように読むことができます。 –

+0

私の必要条件は、studentというクラスがあり、もう一つは教師であるということです。それぞれの生徒と教師の名前とIDを取得しますが、プロパティを使用して各教師と各生徒との関係を作ります。私はこれを解決するためのplsを助ける – MAC

答えて

2

あなたは、プロパティのタイプとして使用されるネストされたクラスを意味しますか?プロパティのアクセス修飾子がプロパティのタイプと同じくらい制限的である限り、これを行うことができます。

プロパティを表示できる場合は、そのタイプにアクセスできるはずです。

1
public class Foo{ 
    public string Name; 
} 

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

あなたは、プロパティとして、ネストされたタイプを使用することができますが、彼らは同じクラス内なら、彼らは同じ名前を持つことはできません。

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

クラスBは、クラスA内にネストされており、私たちは、クラス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

のインスタンスを与えるプロパティクラスAでBPropertyは、あなたが他のクラスに到達するための方法であるクラス(モデル)を持っていると仮定しています。 したがって、これらのクラスの定義(プロパティ)をモデルに含める必要があります。 私のアプリケーションではこの理論を使用します。あなたは、特定の仕事を他の人に命じることができる大家族の父親としてモデルを想像することができます。

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

あなたはTeachersStudents(うまくいけば適切なもの)との関係を設定するに言及。

これは、プライベートレッスンのための1対1である可能性があります。生徒が教師と授業に出席する場合は1対多、複数のクラスに出席する場合は多対多である可能性があります。

ところで、教師には、あまりにも曖昧で、OOで単語classの既存の意味が与えられた悪夢のドメイン用語であるため、設定するのが悪い例です。

関連する問題