Kezdőoldal » Számítástechnika » Programozás » Hogy lehet megcsinálni, hogy...

Hogy lehet megcsinálni, hogy egy osztály használja egy másik osztály létrehozott változóját?

Figyelt kérdés

Ez így nem jó, mert: "The name does not exist in the current context.

public class A

{

string name = "Valami";

}

public class B

{

A objA = new A();

Console.WriteLine(objA.name);

}


Akkor megpróbáltam így, de ekkor meg (A field initializer cannot reference the non static field):

public class A

{

string name = "Valami";

public string GetName()

{

return this.name;

}

}

public class B

{

A objA = new A();

string name = objA.GetName()

}


Akkor megpróbáltam így, de megint ugyanaz ( A field initializer cannot reference the non static field)


public class A

{

private string name = "Valami";

public string Name

{

get { return name; }

}


}

public class B

{

A objA = new A();


string name = objA.Name;


}


Megpróbáltam így is (doest not exists in curret context):


A objA = new A();


string name = "";

name = objA.Name;


Megpróbáltam így is, de ugyanúgy: doest not exists in curret context


class B

{

A objA;

string name ="";

public B()

{

objA = new A();

this.name = objA.Name;

}


Console.WriteLine(name);


}


2020. okt. 11. 22:08
 1/5 anonim ***** válasza:
51%

Vajon szeretnénk hogy egy osztály egyik változóját használhassa egy másik osztály?


Egyébként az adott változónak is pubkikusnak kell lennie.

2020. okt. 11. 22:13
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:

Szeretnénk.


Van egy osztályom, amely tartalmaz egy objektumot, amelyben adatok vannak. Id, felhasználónév stb. Ezt az objektumot akarom átadni egy másik osztálynak és ezzel dolgozni tovább, de ez nem megy ... Így néztem, hogyha csak egy sima nevet adok át, hogy kéne, de azt se lehet ...

2020. okt. 11. 22:16
 3/5 A kérdező kommentje:

"Egyébként az adott változónak is pubkikusnak kell lennie."


Hiába public, hiába privát és hiába írok rá gettert, hiába állítok bármit is egyszerűen vagy non-static, vagy nem létezik ...

2020. okt. 11. 22:16
 4/5 anonim ***** válasza:
100%
Próbáld meg értelmezni a hibaüzenetet: "A field initializer cannot reference the non static field" - magyarul: Egy mező inicializálója nem hivatkozhat nem statikus mezőre. Ezt úgy tudod megoldani, hogy a B osztályban a name mezőt priváttá teszed, majd a gettert úgy írod meg, hogy az kérje le az A osztályból létrehozott objektum name mezőjét, adja értékül a sajátjának (akár mindez elágazásban, például ha a this.name üres string), majd adja vissza a name mező értékét. Ez így ebben a formában már teljesen működőképes és jó megoldás.
2020. okt. 11. 22:30
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:
4: Így jó a megoldás. Köszi.
2020. okt. 11. 22:54

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!