Странности с инстанцированием абстрактных объектов
От: Андрей Хропов Россия  
Дата: 21.02.07 18:07
Оценка:
Код, который почему-то работает в C# (взят из следующего примера) не компилируется в Немерле. При этом почему он работает в C# мне тоже непонятно (хотя я не эксперт в .NET):

C#:
using Microsoft.VisualStudio.VCProjectEngine;
 
class A
{
   public static void Main()
   {
      VCProjectEngine engine = new VCProjectEngineObject();
            System.Console.WriteLine(engine);
   }
}


D:\MyProjects\Scripts>csc testcs.cs /reference:"D:\Development\Visual Studio 200
5\Common7\IDE\PublicAssemblies\microsoft.visualstudio.vcprojectengine.dll"
Microsoft (R) Visual C# 2005 Compiler version 8.00.50727.42
for Microsoft (R) Windows (R) 2005 Framework version 2.0.50727
Copyright (C) Microsoft Corporation 2001-2005. All rights reserved.

D:\MyProjects\Scripts>testcs
Microsoft.VisualStudio.VCProjectEngine.VCProjectEngineObjectClass


Как видно в первом случае инстанцируется объект VCProjectEngineObjectClass.

Nemerle:
[c#]
using Microsoft.VisualStudio.VCProjectEngine;
 
class A
{
   public static Main() : void
   {
       def engine = VCProjectEngineObject() :> VCProjectEngine;
             System.Console.WriteLine(engine);
   }
}
[/c#]


D:\MyProjects\Scripts>ncc testn.n /reference:"D:\Development\Visual Studio 2005\
Common7\IDE\PublicAssemblies\microsoft.visualstudio.vcprojectengine.dll"
testn.n:7:21:7:42: <[01;31merror<[0m: none of the meanings of `VCProjectEngineOb
ject' meets the type ?:
testn.n:7:21:7:42: <[01;31merror<[0m: the type `Microsoft.VisualStudio.VCProje
ctEngine.VCProjectEngineObject' is abstract and cannot be constructed
D:\MyProjects\Scripts>testcs
Microsoft.VisualStudio.VCProjectEngine.VCProjectEngineObjectClass

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.