2010-11-03 14 views
7

Mam kilka klas w pliku klas i chcę, aby wszyscy mieli dostęp do tej samej globalnej metody, aby zapisać powielony kod. Problem polega na tym, że nie mogę uzyskać dostępu do metody z innej klasy w moim pliku - żadnych pomysłów?Uzyskiwanie dostępu do metod z innej klasy w C#

Więc moja Class1.cs układ jest podobny do tego:

public class Job1 
{ 
    public Job1() 
    { 

    } 
} 

public class Methods 
{ 
    public static void Method1() 
    { 
     //Want to access method here from Job1 
    } 
} 
+1

Czy wypróbowałeś 'Methods.Method1()'? – strager

+2

IMO, musisz przeczytać trochę artykułu. –

+0

Wygląda na to, że jesteś nowy w OOP. Nie jest źle, każdy musi gdzieś zacząć. Dobrze byłoby przeczytać książkę OOP wraz z kodowaniem, aby uzyskać podstawy bardzo ważne dla wszystkich języków OOP. – xbonez

Odpowiedz

10

Musisz określić klasę one w jak ten:.

public Job1() 
{ 
    Methods.Method1() 
} 

Jeśli klasa jest w Job1 inną przestrzeń nazw od Methods, a następnie musisz dodać klauzulę użycia lub określić przestrzeń nazw podczas wywoływania metody. Name.Space.Methods.Method1()

+0

Ahh, czuję się wyjątkowo głupio. Był pewien, że to nie zadziałało, gdy próbowałem tego wcześniej. No cóż, działa teraz świetnie - otuchy kumplu! – Chris

1

Właściwie. Public Job1() {} jest konstruktorem, a nie metodą. Można go wywołać z głównej klasy, tworząc obiekt z klasy JOB1. Tu należy dodać następujący kod:

public static void method1() 
{ 
Job1 j1=new Job1(); 
} 

konstruktor może być wywołany przez utworzenie obiektu do klasy corressponding ....

0

Aby uzyskać dostęp do metod innych klas, metody musi być statyczna z modyfikatorem dostępu publicznego .

static - Brak powiązania z instancją klasy, ale udostępniony przez wszystkie inne wystąpienia.

private - dane mogą być dostępne tylko od wewnątrz tej samej klasy.

public - dane mogą być dostępne z innych klas, ale należy się do nich odwoływać.

Powiązane problemy