Je suis actuellement dans un scénario dans lequel je dois utiliser des classes partielles. Dans cette classe partielle, j'ai quelques méthodes qui doivent aborder des champs dans l'autre classe.
Par exemple P>
Edit: Je suis désolé: la première classe est déjà déclarée et p> le compilateur dit Comment puis-je surmonter ce problème? P> P> partiel code>! strong> p>
mystring code> n'existe pas dans la classe partielle! p>
5 Réponses :
Vous devez simplement marquer la classe comme partiel code> dans les lieux forts>, pas seulement l'un d'entre eux. P>
Lorsque je pose votre code dans Visual Studio, j'ai eu une erreur différente: Si je le change, cela fonctionne bien: P> public class myClass
{
private string _myString;
public string myString
{
get { return _myString; }
}
}
public partial class myClass
{
public void doSomething()
{
_myString = "newString";
}
}
Bien que cela puisse compiler bien, dans la documentation, il est dit que c'est requis. C'est probablement une bonne idée de le faire quand même être cohérente et la preuve future.
Je viens de suivre ce que les formes concepteur ... Naughty Winforms Designer!
J'ai eu le même problème jusqu'à ce que j'ai remarqué que ma méthode était statique. Duh!
En supposant que les deux déclarations se réfèrent à la même espace de noms, votre première déclaration ne contient pas le mot clé partiel: p>
Utilisation du mot clé partiel indique que d'autres parties de la classe, struct, ou une interface peut être définie dans le Espace de noms. Toutes les pièces doivent utiliser le mot-clé partiel. Toutes les pièces doivent être disponible au moment de la compilation pour former le type final. Toutes les pièces doivent avoir la même accessibilité, telle que public, privé, et ainsi de suite.Public, privé, et ainsi de suite. P> blockQuote>
http://msdn.microsoft.com /en-fr/Library/wa80x488(V=VS.80).aspx P>
Un problème courant consiste à avoir les classes partielles dans différents espaces de noms. Les espaces de noms font partie du nom de la classe, Selon MSDN ,
Chaque partie d'une classe partielle doit: P>
nomspace1.myclass code> et
nomspace.a.myclass code> sont traités comme deux classes complètement séparées. P>
Il y a quelques éléments dont vous avez besoin pour corriger avec le code que vous avez affiché:
Lorsque vous utilisez des classes partielles en C # toutes les parties forte> de la classe doivent être déclarées comme classes partielles p> < P> Vous avez: p> qui doit devenir: p> Deuxièmement, vous essayez de définir: < / p> mais donc vous ajoutez un seigteur lors de la déclaration ou simplement utiliser: p> dans votre deuxième fichier de classe partielle. P> p> mystring code> est une propriété publique sans setter. p>
mystring code>: p>