Je traversais un code et viennent à travers avec indexeur et je ne suis pas en mesure de comprendre comment il fonctionne, voici mon codepas capable de comprendre indexeur en C#
public class FlyweightFactory
{
Dictionary<string, FlyweightFactory> flyweights = new Dictionary<string, FlyweightFactory>();
public void display() { }
public FlyweightFactory this[string index]
{
get
{
if (!flyweights.ContainsKey(index))
flyweights[index] = new FlyweightFactory();
return flyweights[index];
}
}
}
class Client
{
// Shared state - the images
static FlyweightFactory album = new FlyweightFactory();
static void Main()
{
Client client = new Client();
album["A"].display();
Console.ReadLine();
}
}
dans ce code que j'ai créé un indexeur comme celui-ci
public FlyweightFactory this[string index]
{
get
{
if (!flyweights.ContainsKey(index))
flyweights[index] = new FlyweightFactory();
return flyweights[index];
}
}
mais je quand je suis en train de faire un indexeur comme celui-ci je reçois une erreur
album["A"];
mais en même temps quand je l'utilise comme cela, il fonctionne bien
album["A"].display();
s'il vous plaît me aider à comprendre le fonctionnement de l'indexeur, merci
Et quel est l'erreur que vous obtenez? – Servy
"Je reçois une erreur" Quelle erreur? – itsme86
C'est simple: vous ne pouvez pas utiliser un indexeur (ou une propriété, ou un constructeur) comme une déclaration en soi. Vous ne pouvez pas écrire '" text ".Length;' ou 'new object();'. Mais vous pouvez utiliser 'var x =" text ".Length;' et de même vous pouvez écrire 'var factory = album [" A "];' –