J'ai une petite application de console que je bricoler juste pour apprendre quelque chose de nouveau.Pourquoi System.Type.IsPublic renvoie-t-il la valeur false?
Dans le code ci-dessous, en Console.WirteLine()
, si je test t.IsAbstract
ou t.IsSealed
, ma sortie est AbstractClass true
ou SealedClass true
respectivement. Tous les autres renvoient false
comme je l'espère.
Cependant, si je teste t.IsPublic
, tout, y compris les deux PublicClass
et PublicInterface
renvoient false
. Pourquoi est-ce?
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace ConsoleApplication1
{
class Test
{
static void Main(string[] args)
{
Assembly assembly = Assembly.GetExecutingAssembly();
Type[] assemblyTypes = assembly.GetTypes();
foreach (Type t in assemblyTypes)
Console.WriteLine(t.Name + " " + t.IsPublic);
Console.ReadKey();
}
private class PrivateClass { }
public class PublicClass { }
protected class ProtectedClass { }
sealed class SealedClass { }
abstract class AbstractClass { }
interface myInterface { }
public interface PublicInterface { }
}
}
+1 ma l'analyse était erronée, la réponse de Chris est correcte – JaredPar