OVH Cloud OVH Cloud

enum dans une class

3 réponses
Avatar
Sylfelin
Soit les déclaration ci-dessous. Dans mon appli, j'ai instancié
FolderTreeView, je vois les méthodes de cette class mais impossible de
voir EnumNodeType. Pourquoi ?

Merci


namespace toto
{

public class FolderIconReader
{
}

public class FolderTreeView
{
public enum EnumNodeType : int { Root = 0, Drive = 1, Folder = 2 };
}

}

--
---
Sylfelin

3 réponses

Avatar
Dimitri Travailloux
Bonjour

Un enum déclarée dans une classe ne peut être utilisé que dans cette classe.

Exemple :
public class FolderTreeView
{
public enum EnumNodeType :int { Root = 0, Drive = 1, Folder = 2 };

public FolderTreeView()
{
Console.WriteLine(EnumNodeType.Drive);
}
}

Si vous désirez utiliser votre enum en dehors de la classe d'origine, vous
pouvez déclarer votre enum juste en dessous de votre namespace afin d'y
accéder depuis n'importe où.

Exemple :
namespace ConsoleApplication1
{
public enum EnumNodeType : int { Root = 0, Drive = 1, Folder = 2 };

class Program
{
static void Main(string[] args)
{
Console.WriteLine( EnumNodeType.Drive );
}
}

Bon courage
Dimitri

"Sylfelin" a écrit :

Soit les déclaration ci-dessous. Dans mon appli, j'ai instancié
FolderTreeView, je vois les méthodes de cette class mais impossible de
voir EnumNodeType. Pourquoi ?

Merci


namespace toto
{

public class FolderIconReader
{
}

public class FolderTreeView
{
public enum EnumNodeType : int { Root = 0, Drive = 1, Folder = 2 };
}

}

--
---
Sylfelin





Avatar
Sébastien FERRAND
Dimitri Travailloux a émis l'idée suivante :
Bonjour

Un enum déclarée dans une classe ne peut être utilisé que dans cette classe.

Exemple :
public class FolderTreeView
{
public enum EnumNodeType :int { Root = 0, Drive = 1, Folder = 2 };

public FolderTreeView()
{
Console.WriteLine(EnumNodeType.Drive);
}
}

Si vous désirez utiliser votre enum en dehors de la classe d'origine, vous
pouvez déclarer votre enum juste en dessous de votre namespace afin d'y
accéder depuis n'importe où.

Exemple :
namespace ConsoleApplication1
{
public enum EnumNodeType : int { Root = 0, Drive = 1, Folder = 2 };

class Program
{
static void Main(string[] args)
{
Console.WriteLine( EnumNodeType.Drive );
}
}

Bon courage
Dimitri

"Sylfelin" a écrit :

Soit les déclaration ci-dessous. Dans mon appli, j'ai instancié
FolderTreeView, je vois les méthodes de cette class mais impossible de
voir EnumNodeType. Pourquoi ?

Merci


namespace toto
{

public class FolderIconReader
{
}

public class FolderTreeView
{
public enum EnumNodeType : int { Root = 0, Drive = 1, Folder = 2 };
}

}

--
---
Sylfelin








je ne suis pas d'accord... l'enum est visible en dehors de la classe
lorsqu'il est encapsulé.

NomClasse.NomEnum.Valeur

--
---
Sébastien FERRAND
Microsoft Visual C# MVP
blog : http://blogs.developpeur.org/sebmafate
Avatar
Dimitri
Très juste, cela fonctionne
merci pour cette précision

bien cordialement
using System;
using System.Collections.Generic;
using System.Text;

namespace toto
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(FolderTreeView.EnumNodeType.Drive);
Console.ReadLine();
}
}

public class FolderTreeView
{
public enum EnumNodeType :int { Root = 0, Drive = 1, Folder = 2 };
}
}


"Sébastien FERRAND" <listes_seb[@]vbmaf.net> a écrit dans le message de
news:
Dimitri Travailloux a émis l'idée suivante :
Bonjour

Un enum déclarée dans une classe ne peut être utilisé que dans cette
classe.

Exemple : public class FolderTreeView
{
public enum EnumNodeType :int { Root = 0, Drive = 1, Folder =
2 };

public FolderTreeView()
{
Console.WriteLine(EnumNodeType.Drive);
}
}

Si vous désirez utiliser votre enum en dehors de la classe d'origine,
vous pouvez déclarer votre enum juste en dessous de votre namespace afin
d'y accéder depuis n'importe où.

Exemple : namespace ConsoleApplication1
{
public enum EnumNodeType : int { Root = 0, Drive = 1, Folder = 2 };

class Program
{
static void Main(string[] args)
{
Console.WriteLine( EnumNodeType.Drive );
}
}

Bon courage
Dimitri

"Sylfelin" a écrit :

Soit les déclaration ci-dessous. Dans mon appli, j'ai instancié
FolderTreeView, je vois les méthodes de cette class mais impossible de
voir EnumNodeType. Pourquoi ?

Merci


namespace toto
{

public class FolderIconReader
{
}

public class FolderTreeView
{
public enum EnumNodeType : int { Root = 0, Drive = 1, Folder = 2 };
}

}

--
---
Sylfelin








je ne suis pas d'accord... l'enum est visible en dehors de la classe
lorsqu'il est encapsulé.

NomClasse.NomEnum.Valeur

--
---
Sébastien FERRAND
Microsoft Visual C# MVP
blog : http://blogs.developpeur.org/sebmafate