C# arv från StreamWritter och -Reader || base constructor problem.

Permalänk
Medlem

C# arv från StreamWritter och -Reader || base constructor problem.

Hej Sweclockers.

Så jag börja lek med C# för första gången i går. Så jag tänkte att jag skulle bygga en telefonbok för att lära mig lite mer. Hur som helst så som jag har förstår det ska jag kunna göra så här:

public class FileWritter : StreamWritter{ public FileWritter(Stream stream): base (stream) { } // Sätter StreamWritter's stream constructor. public FileWritter(string path) : base (path) {} // sätter StreamWritter's path constructor. }

Men då klagar kompilatorn på den andra constructorn att den inte kan göra om string till System.IO.Stream, jag förstår inte varför då StreamWritter har redan en egen constructor som är string path, varför försöker ens kompilatorn göra denna "konvering"? Hur ska jag få det att fungera?

Tack för svar!

Visa signatur

Смерть -это решение всех проблем. Нет человека - нет проблемы
Comp1: Ubuntu 16.04 Comp2: Arch Linux
Comp3: Ubuntu Server 16.04 Comp4: Centos 6.5
Comp5: Linux mint 16 Comp6: Raspberry pi (olika OS hela tiden)
Phone: Motorola Google Nexus 6

Permalänk
Medlem

Vidare är det en kompis som säger att för han fungerar det. Kan de vara nåt med visual studio 2015?

Visa signatur

Смерть -это решение всех проблем. Нет человека - нет проблемы
Comp1: Ubuntu 16.04 Comp2: Arch Linux
Comp3: Ubuntu Server 16.04 Comp4: Centos 6.5
Comp5: Linux mint 16 Comp6: Raspberry pi (olika OS hela tiden)
Phone: Motorola Google Nexus 6

Permalänk
Inaktiv

Du har stavat fel till "writer", du skriver "writter".

Det som blir fel när du stavar rätt är att det redan finns en "FileWriter" i samma lib som "StreamWriter".

Såhär fungerar det utmärkt

void Main() { var write = new MyFileWriter("test"); Console.WriteLine(write); } public class MyFileWriter : StreamWriter { public MyFileWriter(Stream stream) : base(stream) { } // Sätter StreamWritter's stream constructor. public MyFileWriter(string path) : base(path) { } // sätter StreamWritter's path constructor. }

Visual Studio är det inte fel på så ofta, särskilt inte på så låg nivå, då är det 100% av gångerna SBS.

Permalänk
Medlem

Vad är SBS?

Min riktigta klass heter inte FileWriter utan CsvFileWriter, så det är inget problem (bara exempel koden ovan), sedan har jag även dubbel kollat StreamWriter (nyss bara för att vara säker).

En annan fråga är inte visual studio "smart" nog att säga att "denna class finns redan"?

Visa signatur

Смерть -это решение всех проблем. Нет человека - нет проблемы
Comp1: Ubuntu 16.04 Comp2: Arch Linux
Comp3: Ubuntu Server 16.04 Comp4: Centos 6.5
Comp5: Linux mint 16 Comp6: Raspberry pi (olika OS hela tiden)
Phone: Motorola Google Nexus 6

Permalänk
Medlem
Skrivet av asdfgh:

Vad är SBS?

Skit bakom spakarna

Visa signatur

Stationär: Fractal Design Meshify 2 Compact, Ryzen 7 5700x, MSI MAG B550 Tomahawk, Kingston HyperX Fury 32GB 3600Mhz CL18, Sapphire Radeon RX 5700 Pulse, Kingston KC3000 1TB, Kingston A2000 1TB, Seasonic Focus GX 650W, Noctua NH-U14S

NAS: Fractal Design Define R5, Ryzen 3 1200AF, Asus Prime B450M-A, 32GB ECC DDR4 @ 2133Mhz, 5x WD Red 4TB (Raidz2), WD Red 2TB (stripe), TrueNAS 12.0

Permalänk
Medlem

Okej, men denna gång visa det sig StreamWriter version=4.1.0.0 inte hade en constructor med string.

Och bara för att göra det glass klart så har vi version 4.0.0.0 som hade denna constructor.

@anon81912 i bland är det värt att hjälpa till i stället för att blame:a att någon är en skit innan du ger det en ärlig chans.

Visa signatur

Смерть -это решение всех проблем. Нет человека - нет проблемы
Comp1: Ubuntu 16.04 Comp2: Arch Linux
Comp3: Ubuntu Server 16.04 Comp4: Centos 6.5
Comp5: Linux mint 16 Comp6: Raspberry pi (olika OS hela tiden)
Phone: Motorola Google Nexus 6

Permalänk
Inaktiv
Skrivet av asdfgh:

@killbom i bland är det värt att hjälpa till i stället för att blame:a att någon en skit innan att ge den en ärlig chans.

Du kunde väl i så fall också ställt frågan som du gjorde i slutet. Utifrån frågan du ställde var det precis det jag beskrev som var felet.
Han en bra dag

Permalänk

Du råkar inte veta vilken .Net version din applikation använder?

Testade med .Net 4.5 och där fanns konstruktorerna. Så högerklicka på din projekt och välj properties. Kolla där efter Target framework.

Sen är frågan vilket projekttyp har du valt? Eftersom jag ser en del json filer. Ifall du får en nedbantad .Net istället.

Permalänk
Medlem

@MindBlaster_303: Han har en global.json så antagligen dotnet core.

Permalänk
Medlem

.Net core med .NET framework 4.5.2 Console Application i mitt visual studio.

Visa signatur

Смерть -это решение всех проблем. Нет человека - нет проблемы
Comp1: Ubuntu 16.04 Comp2: Arch Linux
Comp3: Ubuntu Server 16.04 Comp4: Centos 6.5
Comp5: Linux mint 16 Comp6: Raspberry pi (olika OS hela tiden)
Phone: Motorola Google Nexus 6