Erreur: Une référence d'objet est requise pour la non-statique champ, une méthode ou une propriété
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
}
Bon, je suis complètement perdu sur l'erreur que je reçois. Je suis un exemple dans mon livre de texte.
C'est l'erreur que je reçoit:
Erreur 1 Une référence d'objet est requise pour la non-champ statique, la méthode ou la propriété 'ClassofEmployees.Form1.les gestionnaires.BCY.get' C:\Users\T-Ali\Desktop\SHawnasschool\vb.net 2 c#\projets\ClassofEmployees\ClassofEmployees\Form1.cs 59 13 ClassofEmployees
Ce que je comprends, c'est que l'objet n'est pas créé. Cependant, L'objet, je crois que j'ai créé avec cette ligne de code:
//create new employee object
employee newemployee = new employee();
//get employee data
getEmployeeData(newemployee);
//add employee data to new form window list
pourquoi ne l'employé.nom de l'employé.quelque chose à travailler, mais le gestionnaire de la partie habitude? comment puis-je résoudre ce problème?
- L'erreur suggère votre
managers
classe a une propriété appeléeBCY
, mais cela n'apparaît pas dans votre question. Êtes-vous sûr que c'est le code exact que les résultats dans l'erreur? - Je suis désolé, j'avais changé le code, dans l'espoir qu'il serait résoudre le problème, mais il n'a pas et j'ai oublié de le changer en arrière, j'ai édité mon post et fixe le code exactement comme je l'ai avec l'erreur.
Vous devez vous connecter pour publier un commentaire.
Le problème est que vous êtes en train de lire non-champs statiques de la
manager
classe.managers
est une classe, et non une instance d'objet. Vous devez créer un nouveau gestionnaire d'objet, comme vous l'avez fait avec l'employé.getEmployeeData
est un membre de l'instance deForm1
, pasemployee
.managers
classe d'une manière statique.employee
et la classe enfant estmanager
. Par conséquent, le gestionnaire de classe aura l'employé propriétés, et de son propre, mais la classe d'employés ne sa propre. Pensez-y comme ça. Vous avez un parent de la classe appeléVehicle
et un enfant de la classe appeléCar
. Tout simplement parce que la Voiture a unWheels
propriété ne signifie pas que tousVehicles
avoir des roues. C'est pourquoi la classe parent (employee
dans ce cas) a des propriétés communes à tous les employés. Tout ce qui en hérite, commemanager
, pouvez ensuite ajouter ses propres propriétés.