Re: Странности с инстанцированием абстрактных объектов
От: desco США http://v2matveev.blogspot.com
Дата: 22.02.07 12:30
Оценка: +1
Здравствуйте, Андрей Хропов, Вы писали:

АХ>Код, который почему-то работает в 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


дело в аттрибуте CoClassAttribute(typeof(VCProjectEngineObjectClass)), которым помечен интерфейс VCProjectEngineObject
компилятор C# превращает код
VCProjectEngine engine = new VCProjectEngineObject();

в
Microsoft.VisualStudio.VCProjectEngine.VCProjectEngine engine = new VCProjectEngineObjectClass();
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.