可以实例化一个类,但不能使用它
本文关键字:但不能 一个 实例化 | 更新日期: 2023-09-27 17:52:16
我有两个类,我已经能够在另一个类中实例化一个类,但是当我试图使用实例化的类时,我得到一个错误。我不能使用实例化类和VS甚至报告实例化类不存在。请问这是为什么?
public class GradeBook
{
public GradeBook()
{
gradesList = new List<float>();
}
public void AddGrades(float grades)
{
gradesList.Add(grades);
}
List<float> gradesList;
public List<float> GradesList
{
get
{
return gradesList;
}
set
{
gradesList = value;
}
}
}
public class GradeStatistics
{
GradeBook aveg = new GradeBook();
//This is where the error occurs
aveg.GradesList;
}
类不能包含代码,除非它在方法、属性等中。而创建实例并访问其属性的代码则不是。在包含代码的类中创建一个新方法。此外:你应该对属性
中的值做些什么:public class GradeStatistics
{
public void MyMethod()
{
GradeBook aveg = new GradeBook();
var result = aveg.GradesList;
}
}
第一您可以只使用List对象的属性和方法add items将被淘汰,因为List
有自己的方法来添加条目。
public class GradeBook
{
// Property of type List (short version)
public List<float> GradesList {get; set;}
public GradeBook()
{
GradesList = new List<float>();
}
}
,正如在注释中已经提到的,您需要在构造函数中使用GradeBook
对象或像
public class GradeStatistics
{
// constructor
public GradeStatistics()
{
GradeBook aveg = new GradeBook();
//This will stop the error to occur
//
aveg.GradesList.Add(0.65f);
}
}
或者在新类
中创建一个属性public class GradeStatistics
{
public GradeBook aveg {get; set;}
// constructor
public GradeStatistics()
{
// from now on you can use it also in methods
aveg = new GradeBook();
}
public void clearForeignList()
{
this.aveg.GradesList.Clear();
}
}
再次检查您的代码并查看@martin-mulder答案。下面是一个完美的工作代码:
public class GradeBook
{
public GradeBook()
{
gradesList = new List<float>();
}
public void AddGrades(float grades)
{
gradesList.Add(grades);
}
List<float> gradesList;
public List<float> GradesList
{
get
{
return gradesList;
}
set
{
gradesList = value;
}
}
}
public class GradeStatistics
{
public void MyMethod()
{
GradeBook aveg = new GradeBook();
var x = aveg.GradesList;
}
}