在尝试发出 GET 请求时,无法将运算符"!"应用于 C# 中类型为"字符串"的操作数



我正在尝试建立一个网站上下检查器。但当我尝试运行程序时,我会得到以下错误:(无法将运算符"!"应用于"string"类型的操作数(

我该怎么修?

我是c#btw.的新手

错误在if语句中。

这是代码:

using System;
using System.Net;
namespace cc
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter Your Website for further checking: ");
string url = Console.ReadLine();
System.Threading.Thread.Sleep(3);
Console.WriteLine("Checking...");
System.Threading.Thread.Sleep(3);
Console.WriteLine("Found some shit.");
System.Threading.Thread.Sleep(3);
Console.WriteLine("Printing Request...");
WebClient client = new WebClient();
string checksite = client.DownloadString(url);
if (!checksite == HttpStatusCode.OK)
{
Console.WriteLine("Your Bitch is Down!");
}
}
}
}

首先,(!string == othervalue)并不是你认为的那样。你对一个字符串取否定,这毫无意义,然后看看它是否等于另一边的值,因为!的运算符优先级高于==

但假设您解决了这个问题:A != B!(A == B)都可以工作。您仍然有一个问题,因为数据类型很重要。检查两种不同对象的相等性是没有意义的。

在这种情况下,DownloadString()根本不返回HttpStatusCode。它以字符串的形式返回页面提供的任何HttpResponse的主体,并且为任何不好的状态代码抛出异常

所以你想要这个:

try
{
client.DownloadString(url);
}
catch(WebException ex)
{
Console.WriteLine("Your site is Down!");
}

为了检查字符串是否不是"something",您必须添加类似的()

!(checksite == HttpStatusCode.OK)

checksite != HttpStatusCode.OK

您必须使用比较

目前,您试图否定字符串本身,这是不可能的。

附言:我会把输出改成不那么令人反感的。

相关内容

  • 没有找到相关文章

最新更新