【问题标题】:How to iterate a public constant with a value obtained by a webclient? [duplicate]如何使用 Web 客户端获得的值迭代公共常量? [复制]
【发布时间】:2021-05-08 07:02:09
【问题描述】:

我正在编写一些东西,我的指针在 GitHub 存储库中,所以我使用 client.DownloadString("rawgithubEtc.com");得到它们,但我想用指针创建一个 PUBLIC 变量,所以请求将只完成一次,我试过这个:

public partial class Form1 : Form
{
    WebClient client = new WebClient();
    public string stuff = client.DownloadString("rawgithubetc.com");
    public int speedTimer = 0; public string speed_data;
    Overlay frm = new Overlay();
    public Mem m = new Mem();
    public Form1()
    {
        InitializeComponent();
    }

..但是 Visual Studio 说:

字段初始化器不能用于引用字段、方法或非静态属性。

..在此处的.client 中:

public string stuff = client.DownloadString("rawgithubetc.com");

【问题讨论】:

  • 声明变量时需要提供变量name。您发布的代码还有其他巨大问题,例如公共字段、UI 和非 UI 代码的不正确耦合等。但是导致您似乎要问的问题的直接问题是您根本没有包含变量需要的名称。
  • 您的示例代码中缺少一些内容,例如变量名。如果没有变量名,我们如何才能确定您要在哪里使用下载?
  • 对不起,不要给我投票,我已经修改了它
  • 另外,无论你使用什么翻译工具,当 C# 的英文讨论中正确的词是“field”时,你使用的任何翻译工具都会吐出“camp”。
  • 对不起,现在修改

标签: c# winforms webclient


【解决方案1】:

您不能在另一个字段的初始化表达式中使用一个字段。但是您可以将初始化移到构造函数主体中,一切都会正常工作。

public partial class Form1 : Form
{
    WebClient client = new WebClient();
    public string stuff; /* not allowed to use "client" here */
    public Form1()
    {
        /* using "client" here is perfectly fine */
        stuff = client.DownloadString("rawgithubetc.com");
        InitializeComponent();
    }

【讨论】:

    猜你喜欢
    • 2016-08-28
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多