![](/img/trans.png)
[英]I am having trouble with assigning a Role to a User when a User is created through Registration
[英]I am having trouble assigning an Array?
我遇到了这段代码的麻烦,我无法弄清楚如何让它工作。 我无法弄清楚问题是什么,看起来它应该工作。 两个地方名为m_nameList的字符串数组都标记为'非静态字段,方法或属性'Solutionname.classname.m_nameList'所需的对象引用
编码:
public static bool CheckVacantSeats(int seatNumber)
{
if (m_nameList[seatNumber] == null)
{
return true;
}
return false;
}
m_nameList是在此静态bool之前在构造函数中声明的数组:
public SeatManager(int maxNumberOfSeats)
{
m_totNumOfSeats = maxNumberOfSeats;
m_nameList = new string[m_totNumOfSeats];
m_priceList = new double[m_totNumOfSeats];
}
我从另一个类调用CheckVacantSeat:
bool validSeats = SeatManager.CheckVacantSeats(seatNumber, m_nameList);
我无法弄清楚它有什么问题。 所以我需要一些帮助来弄清楚为什么m_nameList对我不起作用?
提前致谢!!
//问候
您的函数是静态的,但您的变量不是静态的。
那么你的调用开始是错误的,你的方法CheckVacantSeats
只接受一个参数,所以你不能用两个调用它?
CheckVacantSeats(int seatNumber)
SeatManager.CheckVacantSeats(seatNumber, m_nameList);
你的方法也是静态的,所以没有必要有一个构造函数。
我想你的追求是:
SeatManager seatManager = new SeatManager(maxNumberOfSeats);
seatManager.CheckVacantSeats(seatNumber);
也
public bool CheckVacantSeats(int seatNumber)
{
if (m_nameList[seatNumber] == null)
{
return true;
}
return false;
}
您混合了两个概念:使用构造函数初始化的实例和使用静态成员的静态类。 您不能指望静态成员方法访问非静态字段。 我猜你的m_nameList
字段也是静态的,否则你的代码甚至都不会编译。 您应该选择以下两种方式:
SeatManager
的成员都是非静态的; SeatManager
类转换为静态类,所有成员都是静态的。 由于您需要使用总座位数初始化SeatManager
,因此更好的方法似乎是No.(1)。 然后,而不是SeatManager.CheckVacantSeats()
你会打电话像一个实例mySeatManager.CheckVacantSeats()
即使总是只有一个SeatManager
实例 - 一个单例 - 这种方法更好。 使用单例,您最终可能会得到一个public static SeatManager Instance { get; set; }
public static SeatManager Instance { get; set; }
public static SeatManager Instance { get; set; }
物业SeatManager
:和工作,像这样SeatManager.Instace.CheckVacantSeats()
这通常称为单例模式 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.