Ne contient pas un constructeur qui prend 2 arguments?
Je suis actuellement en classe de codage et de se demander ce qui n'allait pas avec mon projet?
class ContactPerson
{
string name;
ContactNo telNo;
public ContactPerson(string in_Name, ContactNo in_No)
{
name = in_Name;
telNo = new ContactNo();
}
public string getName()
{
return name;
}
public ContactNo getContactInfo()
{
return telNo;
}
public void setName(string in_Name)
{
name = in_Name;
}
public void setContactInfo (ContactNo in_No)
{
telNo = in_No;
}
}
}
class ContactNo
{
string contactType;
string contactNo;
public void setContactType(string in_Type)
{
contactType = in_Type;
}
public string getContactType()
{
return contactType;
}
public void setContactNo(string in_No)
{
contactNo = in_No;
}
public string getContactNo()
{
return contactNo;
}
}
}
class Program
{
static void Main(string[] args)
{
ContactNo telNo;
telNo = new ContactNo("Mobile No: ", 95656565);
ContactPerson myFriend;
myFriend = new ContactPerson("Fred Smith", telNo);
string strName;
strName = myFriend.getName();
Console.WriteLine(" " + strName);
ContactNo outContact;
outContact = myFriend.getContactInfo();
outContact.getContactType();
Console.WriteLine(outContact);
outContact.getContactNo();
Console.WriteLine(outContact);
Console.ReadLine();
}
}
}
À la classe de programmes d'
"telNo = new ContactNo("Pas de Mobile: ", 95656565);"
theres erreur disant Ne contient pas un constructeur qui prend 2 arguments
pourrais-je savoir pourquoi?
- venant de java, à droite? utiliser les biens au lieu de
getABC()
etsetABC()
méthodes, s'il vous plaît. - Pour élaborer ce que @HighCore dit, au lieu de getABC() et setABC, utiliser des choses comme la chaîne publique YourString { get { return _yourString } set { _yourString = valeur } };
- Et puis vous pouvez utiliser la propriété initialiseurs:
telNo = new ContactNo() { ContactType = "Mobile No: ", Number = 95656565};
- cela m'a fait tellement plaisir lorsque je est venu personnellement à C# à partir de Java. 🙂
- Considérer aussi, fortement, laissant la notation hongroise où il appartient... dans le passé.
- -1 pour des tas de pertinence code et 0 effort de recherche... et apparemment défaut à même de lire l'erreur
- C'est ce qui sépare les hommes des enfants, je suppose.
Vous devez vous connecter pour publier un commentaire.
Ce serait parce que vous ne disposez pas d'un constructeur qui contient deux arguments dans la ContactNo de classe, comme l'erreur suggère. Prendre un coup d'oeil dans la classe, et vous remarquerez qu'il n'y a aucun constructeur n'. Vous en avez un dans la ContactPerson classe, si.
Cette ligne:
telNo = new ContactNo("Mobile No: ", 95656565);
est d'appeler un constructeur de ContactNo qui prend deux arguments: une chaîne de caractères, et un int. Vous n'avez pas un constructeur qui est mis en place pour ce faire actuellement, et c'est là votre erreur. Vous pouvez créer un en ajoutant
ou quelque chose de cette nature. Ou, si vous utilisez une chaîne de caractères pour le numéro (ce qui lui ressemble), remplacer
int n
avecstring s2
ou ce que vous voulez l'appeler.parce que vous n'avez pas de contact pas de constructeur avec 2 paramètres. Je suppose que vous confondez avec votre autre classe qui possède 2 paramètres
À partir de votre code, il semble que vous devez ajouter à votre classe ContactNo
Ajouter ceci dans votre ContactNo Classe.
La raison pour laquelle vous obtenez l'erreur est parce qu'il n'y a pas de constructeur à deux paramètres.
ajouter les éléments suivants à votre ContactNo classe:
Vous n'avez pas de constructeur de prendre 2 paramètres. Ajouter ce constructeur dans votre ContactNo classe
Vous devez déclarer le constructeur de votre
ContactNo
classe. Les Classes fournit uniquement un constructeur par défaut sans argument.Le constructeur que vous avez besoin est le suivant:
Puisque vous êtes de passage un
string
etint
je pense que vous voulez créer un nouveauContactPerson
, pasContactNo
. Mais si vous voulez vraimentContactNo
, ajoutez le constructeur :Ou (les propriétés) de l'initialiser comme ceci :