Web Log di Adrian Florea

"You know you've achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away." Antoine de Saint-Exupery
posts - 440, comments - 2715, trackbacks - 3944

My Links

Archives

Post Categories

Image Galleries

.RO Blogs

.RO People

.RO Sites

Blogs

Furls

Links

vinCitori

Bug System.ComponentModel.BindableSupport.Default?

A me, il fatto che il seguente snippet stampi:

True
True
False

a console, risulta stranissimo!

using System;
using System.ComponentModel;
 
class Test
{
      static void Main()
      {
            BindableAttribute a = BindableAttribute.Default;
            BindableAttribute s = new BindableAttribute(BindableSupport.Default);
 
            Console.WriteLine(a.IsDefaultAttribute()); // True
            Console.WriteLine(s.IsDefaultAttribute()); // True
 
            Console.WriteLine(a.Equals(s)); // False???
      }
}

Praticamente, l'enumeration System.ComponentModel.BindableSupport, così com'è definita nel framework:

namespace System.ComponentModel
{
      public enum BindableSupport
      {
            No,
            Yes,
            Default // 2???
      }
}

vede il valore dell'elemento Default come 2 e non come 0 (che è quello di No). In effetti, nella definizione della classe System.ComponentModel.BindableAttribute, che wrappa l'enumeration di sopra, abbiamo:

namespace System.ComponentModel
{
      // ...
      public sealed class BindableAttribute : Attribute
      {
            public static readonly BindableAttribute Default = BindableAttribute.No;
 
            // ...
      }
}

Quindi, secondo me, il valore corretto di BindableSupport.Default sarebbe:

namespace System.ComponentModel
{
      public enum BindableSupport
      {
            No,
            Yes,
            Default = No // 0
      }
}

Cosa ne pensate?

Print | posted on mercoledì 6 luglio 2005 13:58 | Filed Under [ Carillon .NET Bugs? ]

Powered by:
Powered By Subtext Powered By ASP.NET