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 compilatore VB .NET? (StandardModuleAttribute)

Se la classe Foo la compiliamo separatamente in un file "Foo.vb":

' Foo.vb
<Microsoft.VisualBasic.CompilerServices.StandardModule()> _
Public NotInheritable Class Foo
  Public Sub New()
  End Sub
End
Class

con:

vbc /t:library Foo.vb

e proviamo a consumarla nel codice seguente:

' Test.vb
Class Test
  Shared Sub Main()
    Dim f As Foo = New Foo
  End Sub
End
Class

con:

vbc /r:Foo.dll Test.vb

otteniamo l'errore BC30371 ("Module 'Foo' cannot be used as a type.") come mostrato nel post precedente.

Se invece mettiamo tutto in un file, l'errore non appare più!

' TestFoo.vb
<Microsoft.VisualBasic.CompilerServices.StandardModule()> _
Public NotInheritable Class Foo
  Public Sub New()
  End Sub
End
Class

Class Test
  Shared Sub Main()
    Dim f As Foo = New Foo
  End Sub
End
Class

cioè:

vbc TestFoo.vb

compila senza problemi.

Il comportamento non mi sembra per nulla normale. A voi? Secondo voi sarebbe da postare su MSDN Product Feedback Center?

(Aggiornamento 1: 14/02/05): L'ho proposto come bug, qui.

(Aggiornamento 2: 14/02/05): Resolved by design: leggere il commento di Paul Vick

Print | posted on domenica 13 febbraio 2005 23:45 | Filed Under [ Carillon .NET Bugs? ]

Powered by:
Powered By Subtext Powered By ASP.NET