C# 错误:非静态字段、方法或属性需要对象引用
好吧,我完全被我收到的错误迷住了。我在我的课本上举了一个例子 这是我收到的错误: 错误1非静态字段、方法或属性“ClassofEmployees.Form1.managers.BCY.get”C:\Users\T-Ali\Desktop\SHawnasschool\vb.net 2 C\projects\ClassofEmployees\ClassofEmployees\Form1.cs 59 13 ClassofEmployees”需要对象引用 据我所知,该对象不是创建的。然而,我相信我用这行代码创建的对象:C# 错误:非静态字段、方法或属性需要对象引用,c#,compiler-errors,C#,Compiler Errors,好吧,我完全被我收到的错误迷住了。我在我的课本上举了一个例子 这是我收到的错误: 错误1非静态字段、方法或属性“ClassofEmployees.Form1.managers.BCY.get”C:\Users\T-Ali\Desktop\SHawnasschool\vb.net 2 C\projects\ClassofEmployees\ClassofEmployees\Form1.cs 59 13 ClassofEmployees”需要对象引用 据我所知,该对象不是创建的。然而,我相信我用这行
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ClassofEmployees
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
class employee
{ //will include the attributes of all employees of your organization.
//fields for employee
public int employeeId; // 5 digit number to represent employee
public int ssn; //social security number of employee
public string name; //employee name
public int dob; //date of birth
public int pay; //rate of pay
}
class managers : employee
{
public string backgroundCheck {get; set;}
public string isSalary;
public string responsibilitys;
}
private void getEmployeeData(employee employee)
{
employee.employeeId = int.Parse(EmployeeID.Text);
employee.ssn = int.Parse(SSN.Text);
employee.name = employeeName.Text;
employee.dob = int.Parse(DOB.Text);
employee.pay = int.Parse(pay.Text);
managers.backgroundCheck = bCYes;
managers.isSalary = salaryYes;
managers.responsibilitys = responsibilitys.Text;
}
private void add_Click(object sender, EventArgs e)
{
//create new employee object
employee newemployee = new employee();
//get employee data
getEmployeeData(newemployee);
//add employee data to new form window list
}
为什么employee.name或employee.something中的任何一个都起作用,但经理部分不起作用?如何修复此问题?问题是您正在从
管理器
类读取非静态字段
//create new employee object
employee newemployee = new employee();
//get employee data
getEmployeeData(newemployee);
//add employee data to new form window list
managers
是一个类,而不是对象实例。您需要像对待员工一样创建一个新的manager对象。问题是您正在从manager
类读取非静态字段
//create new employee object
employee newemployee = new employee();
//get employee data
getEmployeeData(newemployee);
//add employee data to new form window list
managers
是一个类,而不是对象实例。您需要像对待员工一样创建一个新的manager对象。getEmployeeData
是Form1
的实例成员,而不是employee
@lee-是的,您是对的。我在读的时候有点搞混了。问题似乎在于以静态方式使用管理器
类。非常感谢!!我创建了一个新的管理器对象,现在一切都在流动!键盘如果我创建了类employee:manager类manager这样的类,那么允许我跳过创建新的manager对象吗?基本上翻转继承部分。这是因为父类是employee
,子类是manager
。因此,manager类将具有employee属性和自己的属性,但employee类将仅具有自己的属性。这样想吧。您有一个名为Vehicle
的父类和一个名为Car
的子类。仅仅因为汽车有车轮
属性并不意味着所有车辆
都有车轮。这就是为什么父类(employee,在本例中为employee)具有所有employee通用的属性。从它继承的任何东西,如manager
,都可以添加自己的特定属性。getEmployeeData
是Form1
的实例成员,而不是employee
@lee-是的,你说得对。我在读的时候有点搞混了。问题似乎在于以静态方式使用管理器
类。非常感谢!!我创建了一个新的管理器对象,现在一切都在流动!键盘如果我创建了类employee:manager类manager这样的类,那么允许我跳过创建新的manager对象吗?基本上翻转继承部分。这是因为父类是employee
,子类是manager
。因此,manager类将具有employee属性和自己的属性,但employee类将仅具有自己的属性。这样想吧。您有一个名为Vehicle
的父类和一个名为Car
的子类。仅仅因为汽车有车轮
属性并不意味着所有车辆
都有车轮。这就是为什么父类(employee,在本例中为employee)具有所有employee通用的属性。从它继承的任何东西,如manager
,都可以添加自己的特定属性。该错误表明managers
类有一个名为BCY
的属性,但这不会出现在您的问题中。你确定这就是导致错误的代码吗?很抱歉,我更改了代码,希望它能解决问题,但它没有,我忘了重新更改代码,我已经编辑了我的帖子,并将代码修复为与我的错误完全相同。该错误表明您的管理者
类具有名为BCY
的属性,但这没有出现在您的问题中。你确定这是导致错误的确切代码吗?很抱歉,我更改了代码,希望它能解决问题,但它没有,我忘了重新更改,我编辑了我的帖子,并将代码修复为与错误完全相同的代码。