C#:我无法访问我的结构成员
我正在尝试下面这个简单的代码,但令人惊讶的是编译器说 “名称pq在当前上下文中不存在” 但是,正如您所看到的,它在所需的范围内。即使添加了getter和setter,我也无法做到这一点C#:我无法访问我的结构成员,c#,struct,C#,Struct,我正在尝试下面这个简单的代码,但令人惊讶的是编译器说 “名称pq在当前上下文中不存在” 但是,正如您所看到的,它在所需的范围内。即使添加了getter和setter,我也无法做到这一点 namespace AskYourQuestion { public struct QuestionNum { public string Q1; } class Questions { QuestionNum pq = new Ques
namespace AskYourQuestion
{
public struct QuestionNum
{
public string Q1;
}
class Questions
{
QuestionNum pq = new QuestionNum();
pq.Q1 = "hi";
}
}
我想用一些字符串创建一个
结构
,并创建一些类
,这些类在特定语言中初始化字符串,在主程序中,根据用户语言,字符串为他显示。您应该将该行放在方法或构造函数中
public class Questions
{
QuestionNum pq = new QuestionNum();
Questions()
{
pq.Q1 = "hi";
}
}
你也可以
public struct QuestionNum
{
public string Q1;
}
public partial class Form1 : Form
{
QuestionNum pq = new QuestionNum()
{
Q1 = "something"
};
}
下面是一些帮助您进一步剖析问题的输入 当前:
namespace AskYourQuestion
{
public struct QuestionNum
{
public string Q1;
}
class Questions
{
QuestionNum pq = new QuestionNum();
// pq.Q1 = "hi"; --> This will not work
// Why? See below
}
}
类是一个规范,我们在其中封装它应该包含的成员
这里的Questions
类封装了QuestionNum
类型的成员pq
,我们应该指定如何构造Questions
类及其封装成员
实现这一点的不同方法:
- 默认值:
QuestionNum pq=new QuestionNum(){Q1=“Hi”}代码>
- 构造它:
公共问题(字符串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);
还有很多其他的方法,但是你需要根据你的问题选择最好的案例 把你的陈述放在一个方法中,你不能把这行写进
pq.Q1=“hi”代码>就像在类范围中那样。它需要在方法范围内。您还应该了解为什么QuestionNum pq=new QuestionNum(){Q1=“hi”}
是另一种选择,如果您解释了希望实现的目标,而不仅仅是您正在做的事情,那么它将非常有帮助。