2017-03-15 27 views
-1

[C位】基本的

クラスは、クラスBアカウントオブジェクトをインスタンス化し、それに

を保持

ユーザーアカウントオブジェクトを構築しますクラスはクラスdで参照されるメソッドを保持します

cla SSのDはどのようにクラスDのクラスCからメソッドを使用して、クラスBからオブジェクトPBeenisを参照していますか?

//constructs object 
public class A 
{ 
    public string firstname; 
    public string lastname; 

    public A(string givenname, string surname) 
    { 
     firstname = givenname; 
     lastname = surname; 
    } 
} 

//instantiates object from class A 
public static class B 
{ 
    public static void Accounts() 
    { 
     A PBeenis = new A("Paul", "Beenis"); 
    } 
} 

//holds a method that displays info about object 
public static class C 
{ 
    public static void Get_UserInfo(ref A name) 
    { 
     Console.WriteLine("Name: {0} {1}", name.firstname, name.lastname); 
    } 
} 

//calls a method in class C and references object from class B 
public static class D 
{ 
    static void Main(string[] args) 
    { 
     C.Get_UserInfo(ref PBeenis); 
    } 
} 

クラスcからメソッドのクラスBからユーザーアカウントを参照したいですか

C.Get_UserInfo(ref PBeenis); 

CS0103名 'Pbeenisは、' あなたはスコープについてお読みください現在のコンテキストで

答えて

0

あなたが達成しようとしていることはわかりませんが、その方法の外でインスタンス化を行うのはなぜですか? また、refキーワードを使用する必要もありません。

public static class B 
{ 
    public static A PBeenis = new A("Paul", "Beenis"); 
} 

//calls a method in class C and references object from class B 
public static class D 
{ 
    static void Main(string[] args) 
    { 
     C.Get_UserInfo(B.PBeenis); 
    } 
} 

その他のオプションは、メソッド

//instantiates object from class A 
public static class B 
{ 
    public static A Accounts() 
    { 
     return new A("Paul", "Beenis"); 
    } 
} 
//calls a method in class C and references object from class B 
public static class D 
{ 
    static void Main(string[] args) 
    { 
     C.Get_UserInfo(B.Accounts()); 
    } 
} 

挨拶でオブジェクトを返すことです。

+0

最初のオプションは私が探していたものです。私はまだ基​​礎を学んでいるので、これは本当に単なるテストなので、クラスをさらに理解することができます。どうもありがとうございました。 –

0

存在しません。

範囲外のため、Pbeenisをコードのその部分から参照することは不可能です。

これを解決するには、スコープ内で参照を取得する方法が必要です。例えば

、PbeenisクラスAの財産作りなどにアクセス:

B.Pbeenis 

お役に立てば幸いです。