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

Using Delphi for .NET in C#

Esiste una regola CLS (CLS Rule 36) che dice: "Global static fields and methods are not CLS-compliant". Visto questo, vi aspettate che il seguente codice in Delphi for .NET sia CLS-compliant? Senza una classe, senza niente... :-)

// Delphi for .NET
library Foo;

uses
  SysUtils;

procedure DoSomething(msg: String);
begin
  Console.WriteLine(msg)
end;

begin
end
.

Ebbene, sì! Il compilatore di Delphi for .NET, appunto per la conformità al CLS, trasforma la "procedura" DoSomething in un metodo static di una classe Foo sotto il namespace (se lo inventa lui) Foo.Units. E possiamo benissimo utilizzare la "procedura" DoSomething in C#:

// C#
class Test
{
  static void Main()
  {
    Foo.Units.Foo.DoSomething("Ciao");
    System.Console.Read();
  }
}

Ecco perché la mia sessione di giovedì si chiama "CLS: regole per compilatori e per sviluppatori". Perché un po' di lavoro per la conformità al CLS lo fanno anche i compilatori, non solo gli sviluppatori :-)

Print | posted on lunedì 29 novembre 2004 18:15 | Filed Under [ Carillon .NET ]

Powered by:
Powered By Subtext Powered By ASP.NET