2016-01-15 15 views
5

Sono nuovo di C# e sto provando a stampare un numero da uno spazio dei nomi diverso nel mio principale. Fornirò il codice qui sotto.Come funzionano i Namespace in C#?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("hello world" + x); 
      Console.ReadLine(); 
     } 
    } 
} 

namespace Applicaton 
{ 

    class Program2 
    { 
     public int Test() 
     { 
      int x = 5; 
      return x; 
     } 
    } 
} 

Voglio che la x della classe Program2 appaia nel mio main che è in Program Class.

risposta

1

Basta chiamare la classe.

Program2 p = new Program2(); 
Console.WriteLine(p.Test().toString()); 

e che cosa mai Program2 è possibile chiamare su di esso. o assegnarlo.

int num = p.Test(); 
Console.WriteLine(num); 

quindi stamparlo.

0

È necessario creare un'istanza della classe e richiamare il metodo su di essa.

Program2 program = new Program2(); 
int x = program.Test(); 
Console.WriteLine("hello world" + x); 

Assicurati di includere lo spazio dei nomi:

using Application; 
+1

@ user700390 OP sta chiaramente cercando di stampare quel valore, non è sicuro di cosa intendi. – Cyral

0

programmazione non si comporta come tale. Spazi dei nomi, apprendi alcuni principi orientati agli oggetti.

Ciò che è necessario è "nuovo" o creare un'istanza di un oggetto Program2 che può chiamare il metodo Test().

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Application; 

namespace ConsoleApplication1 
{ 
    class Program 
     { 
      static void Main(string[] args) 
      { 
       Program2 program = new Program2(); 
       //Below I am calling the Test() method knowing that Test() will return a value to save from having to initialize another variable. 
       Console.WriteLine("hello world" + program.Test()); 
      } 
     } 
    } 
    namespace Applicaton 
    { 

     class Program2 
     { 
      public int Test() 
      { 
       int x = 5; 
       return x; 
      } 
     } 
    } 
3

È possibile modificare il codice come di seguito. Poiché il tuo Program2 è definito in un'altra classe, dovrai comunque qualificarlo con il nome dello spazio dei nomi durante l'accesso.

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("hello world" + new Applicaton.Program2().Test()); 
      Console.ReadLine(); 
     } 
    } 
} 
2

Prima verificare Decalare Applicazione come dominio citato, program2 quindi impostare come pubblico, impostare x come proprietà pubbliche per program2. quindi utilizzare la classe program2 in main.

Di seguito è riportato il codice sorgente.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Applicaton; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Program2 p= new Program2(); 
      Console.WriteLine("hello world" + p.x); 
      Console.ReadLine(); 
     } 
    } 
} 

namespace Applicaton 
{ 

    public class Program2 
    { 
     public int x; 
     public int Test() 
     { 
      x = 5; 
      return x; 
     } 
    } 
}