kann nicht implizit konvertiert den Typ void, object error in C#
Ich bin mit diesem in einer Anwendung, wo darf ich mich um dessen Funktionalität zu erweitern mit meinem eigenen code.
Es wurde in C# gecodet.
Result()
zurück, die Antwort wird es aus meiner Node.js server (FinalResponse
) und ich werde es in der Anwendung wie unten, aber ich bekomme die Fehlermeldung in den Titel, wenn ich versuche, EchoOut().
var returnedValue = Lib.Result();
App.EchoOut(returnedValue); //EchoOut allows you to test the function you wrote, it echoes string on the screen, but in this case, it gives an error.
Fehler
cannot implicitly convert type void to object
Wenn ich testen die Lib.Result()
allein, ich sehe die Anfrage von der app gemacht, aber ich kann nicht zuordnen, ist der zurückgegebene Wert einer Variablen.
Wie kann ich zuweisen das FinalResponse's
Wert returnedValue
variable?
Mein code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
namespace MainNameSpace
{
public class Lib
{
public void Result()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("192.168.1.101:8000/mytest");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader stream = new StreamReader(response.GetResponseStream());
string FinalResponse = stream.ReadToEnd();
Console.WriteLine(FinalResponse);
}
}
}
void bedeutet " hat diese Methode nichts zurückgeben, statt Sie über eine Methode verfügen, müssen einen string zurückgeben.
Danke, Steve. Es funktioniert jetzt.
Danke, Steve. Es funktioniert jetzt.
InformationsquelleAutor salep | 2016-11-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie ändern Sie den Rückgabetyp der
Result
Methodestring
und Rückkehr derFinalResponse
statt schreiben auf die Konsole.Es ist auch als gute Praxis, wickeln Sie den code mit Hilfe von Einweg-Objekte (in diesem Fall Objekte vom Typ
HttpWebResponse
,Stream
undStreamReader
) mitusing
Blöcke.Nahm ich auch die Freiheit mit
var
anstatt explizit schriftlich aus den Typen der Variablen, weil die Arten sind bereits offensichtlich aus der rechten Seite der Deklarationen.Ich bin froh, dass es funktioniert! Ich auch verändert, den code zu verwenden
using
Blöcke richtig zu entsorgen, die respose, die Streams und die stream-reader.InformationsquelleAutor Botond Balázs
Ihre Methode Result() ist vom Typ void. Aber Sie versuchen, zuweisen einen Wert zurück. Ändern Sie den Rückgabetyp und mit "return"
InformationsquelleAutor fm611
Das problem ist, dass man nicht Rückkehr nichts von Ihrer Funktion. Umschreiben, dass es diese, und es wird funktionieren:
Zusätzlich, hier ist wie man den C# - ein wenig mehr Redewendungen in Bezug auf den Fall, Konventionen etc:
InformationsquelleAutor Tomas Aschan