Zmienna z metody dostępna poza nią?
[code]public static string SkinName;
static void SkinWindow()
{
XmlDocument SkinConfig = new XmlDocument();
SkinConfig.Load("c:\\Users\\maspi\\Desktop\\skin.xml");
SkinName = SkinConfig.SelectSingleNode("/skin/@name").Value;
}
public string test { get { return SkinName; } }[/code]
Rezultat jaki otrzymuję to pusta zmienna SkinName. Chciałbym otrzymać to, co przypisuję w funkcji SkinWindow. Rozumiem, że przypisanie wartość przypisana w metodzie istnieje tylko dla tej metody. Jak udostępnić wartość z metody tak, żebym miał do niej dostęp gdzie indziej?
Odpowiedzi: 3
A skąd pobierasz wartość do tego stringu, to co masz napisane to tylko podczas używania SkinWindow dodajesz wartość inną. czyli jak zurzyjesz obiekt_tej_klasy.SkinWindow i tylko teraz się zmieni jego wartość. to jest normalnie.
Ale deklaracja zmiennej jest w tej samej klasie w której cała reszta. Powyższy kod znajduje się w jednej klasie.
Jeśli masz public static string SkinName, to gdzie indziej możesz mieć dostęp do niego przez obiekt tej klasy gdzie się znajduje deklaracja SkinName. czyli przypuśćmy deklarowałeś tego stringa w klasie MyKlas. to w dowolnym miejscu projektu możesz robić tak(nawet w zdarzeniu w innym metodzie innego klasu)
[code]
MyKlas obj=new Myklas()//oczywiście konstruktor z istniejącymi parametramy
jakiśString= obj.SkinName;
[/code]
A inna sprawa gdy ten SkinName jest private, wtedy też przez obiekt wywołujeś właściwośc set.
Strona 1 / 1