gpt4 book ai didi

c# - 不能在同一类内的函数中使用变量声明类。为什么 ?

转载 作者:行者123 更新时间:2023-12-03 20:27:09 24 4
gpt4 key购买 nike

我已经在类“Main”中声明了一个名为“context2”的变量。但是我不能在函数“Main_Load”中使用变量。我做错了什么?

using System;
using System.Windows.Forms;
using Soapi;
using Soapi.Domain;

namespace SO_Console_Client
{
public partial class Main : Form
{
const string apiKey = "*************";
var context2 = new ApiContext(apiKey).Initialize(false);
public Main(String GravatarURL, User user)
{
InitializeComponent();
pictureBox1.Load(GravatarURL); //Loads the Gravatar image from the url

//set the reputation details
lblRep.Text = String.Format("Reputation: {0}", user.Reputation);

//Sets the badge details
lblBadge.Text = String.Format("Badges: gold={0} silver={1} bronze={2}", user.BadgeCounts.Gold, user.BadgeCounts.Silver, user.BadgeCounts.Bronze);

groupBox1.Text = user.DisplayName.ToString();
}

private void Main_Load(object sender, EventArgs e)
{
Soapi.Queries.QuestionsUnansweredQuery query = context2.Official.StackOverflow.Questions.Unanswered;
foreach (Question q in query)
{
try
{
Console.WriteLine(q.Title.ToString());
//Console.WriteLine(q.Body.ToString());
}
catch (System.NullReferenceException ex)
{

}

}

}
}
}

最佳答案

隐式类型不适用于字段;它仅适用于局部变量。

认为这就是您的真实意图:

ApiContext context2 = new ApiContext(apiKey);

public Main(String GravatarURL, User user)
{
context2.Initialize(false);
...
}

在极不可能的情况下,ApiContext 是某种流畅的接口(interface),ApiContext.Initialize(bool) 返回一个不同的ApiContext对象,这应该是你想要的:

ApiContext context2 = new ApiContext(apiKey).Initialize(false); 

虽然如果你这样做会更清楚:

ApiContext context2;

public Main(String GravatarURL, User user)
{
context2 = new ApiContext(apiKey).Initialize(false);
...
}

不过,我真的很怀疑。

关于c# - 不能在同一类内的函数中使用变量声明类。为什么 ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4078285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com