我正在尝试下面这个简单的代码但令人惊讶的是编译器说
“当前上下文中不存在名称pq”
但是,如您所见,它在所需的范围内。即使添加了getter和setter,我也无法做到。
namespace AskYourQuestion
{
public struct QuestionNum
{
public string Q1;
}
class Questions
{
QuestionNum pq = new QuestionNum();
pq.Q1 = "hi";
}
}
我想创建一个带有一些字符串的struct
并创建一些classes
来初始化特定语言的字符串,而主程序则取决于用户语言,字符串会显示给他。
答案 0 :(得分:1)
您应该将该行放在方法或构造函数中......
public class Questions
{
QuestionNum pq = new QuestionNum();
Questions()
{
pq.Q1 = "hi";
}
}
答案 1 :(得分:1)
以下几条输入可帮助您进一步剖析问题。
当前:
namespace AskYourQuestion
{
public struct QuestionNum
{
public string Q1;
}
class Questions
{
QuestionNum pq = new QuestionNum();
// pq.Q1 = "hi"; --> This will not work
// Why? See below
}
}
Class是一个规范,我们封装它应该拥有的成员。
此处Questions
类封装了pq
类型的成员QuestionNum
,我们应该指定如何构造Questions
类及其封装成员。
执行此操作的不同方法:
QuestionNum pq = new QuestionNum() { Q1 = "Hi" };
public Questions(string defaultValue) { this.pq.Q1 =
defaultValue; }
每个例子:
默认:
namespace AskYourQuestion
{
public struct QuestionNum
{
public string Q1;
}
class Questions
{
internal QuestionNum pq = new QuestionNum() { Q1 = "Hi" };
}
}
构建它:
namespace AskYourQuestion
{
public struct QuestionNum
{
public string Q1;
}
class Questions
{
internal QuestionNum pq = new QuestionNum() { Q1 = "Hi" };
public Questions()
{
}
public Questions(string defaultValue)
{
this.pq.Q1 = defaultValue;
}
}
}
使用它:
Questions quest = new Questions("World");
Console.WriteLine(quest.pq.Q1);
还有很多其他方法,但您需要根据您的问题选择最佳案例。
答案 2 :(得分:0)
你也可以
public struct QuestionNum
{
public string Q1;
}
public partial class Form1 : Form
{
QuestionNum pq = new QuestionNum()
{
Q1 = "something"
};
}