Kezdőoldal » Számítástechnika » Programozás » Ez a c# kód miért nem akar jó...

Ez a c# kód miért nem akar jó lenni ha egyszer úgy csinálom, ahogy a könyvben van?

Figyelt kérdés

Az a hibaüzi,hogy nincs nulla paraméteres konstruktor.

Azért nem csinálok nulla paraméterest mert a könyv szerint ha van paraméteres konstruktorom,akkor is használhatom az objektum inicializálót.


Vagy ezt úgy értheti,hogy használhatom az objektum inicializálót de paraméteres konstruktor mellett kell,hogy legyen nulla paraméteres is?


Itt a kód:

using System;

namespace PracticeConsoleApplication {


internal class Test {

private int a;

private int b;

internal Test(int a, int b): base()

{

this.a = a;

this.b = b;

}


internal int SetASetBAndGetAplusB {

get { return this.a + this.b; }

set {

this.a = value;

this.b = value;

}

}

}


internal class MainClass {

private MainClass(): base()

{}


public static void Main()

{

Test one = new Test() {

SetASetBAndGetAplusB = 10

};


Console.WriteLine(one.SetASetBAndGetAplusB);

Console.ReadKey();

}

}

}


2014. jan. 27. 22:23
 1/4 A kérdező kommentje:

"Vagy ezt úgy értheti,hogy használhatom az objektum inicializálót de paraméteres konstruktor mellett kell,hogy legyen nulla paraméteres is?"

Ha ez nem igaz,akkor mi lehet a baj?

2014. jan. 27. 22:33
 2/4 anonim ***** válasza:

Alighanem az lesz a gond, hogy nincs paraméter nélküli konstruktora a Test osztályodnak. De ha ez a tipped, miért nem próbálod ki?:)

Ami még furcsa számomra:

-tudtommal object initializer-nél nem kell (), azaz:

Test one = new Test {...} kéne (lehet, hogy tévedek, évek óta nem volt dolgom C#-pal)

-base() dolgokat felesleges kiírni

-property ilyen módon történő megvalósítása nem biztos, hogy célszerű (azt várná az ember, hogy ugyanazt kapja vissza, mint amit beállított, MS guideline szerint pedig törekedni kell a kiszámítható működésre property-knél)

2014. jan. 27. 22:38
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:

Nem definiáltál paraméter nélküli konstruktort.

Van egy ilyened:


Test(int a, int b)


És létre akarsz hozni egy objektumot így:


Test one = new Test();


Vagy paraméterezd fel, vagy csinálj egy Test() konstruktort.

2014. jan. 28. 11:16
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:

A megoldás magyarul:


Létrehoztál egy Test osztályt, hozzá egy konstruktort, ami két int típusú paramétert vár. Na most a konstruktor pont arra való, hogy amikor létrehozol egy objektumot az osztályodból, akkor azt úgy tedd meg, hogy ezeket a paramétereket oda is adod a létrejövő objektumnak.


Vagyis amit te Test one = new Test()-nek írtál, azt úgy kellene helyesen csinálni, hogy az osztály konstruktorának megfelelő legyen.


Tehát, Test one = new Test(a, b). Ahol az a és b egy-egy int típusú változó vagy konstans.

2014. jan. 29. 14:18
Hasznos számodra ez a válasz?

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!