C #, J # и VB.NET возможно ли написать класс в каждом и заставить его переменные взаимодействовать в одном приложении? - PullRequest
2 голосов
/ 13 июля 2010

Мне задавали этот вопрос в интервью, буду признателен за ваши ответы.

С уважением; Мухаммед Мохсин

Ответы [ 3 ]

2 голосов
/ 13 июля 2010

Непонятно, что именно имел в виду оригинальный интервьюер - , но если он спрашивал, возможно ли объединить код в .NET, написанный на C #, J # и VB.NET - ответ - да - пока каждый класс находится в отдельной сборке. Вы не можете скомпилировать код из нескольких языков в одну сборку.

Пока код, написанный в каждом из них, CLS-совместимый - вы должны иметь возможность ссылаться на типы и свойства, объявленные независимо от языка. Языковая нейтральность является одним из основных принципов проектирования .NET.

Чтобы ответить на ваш вопрос из комментариев ... Когда вы компилируете код на любом языке .NET, он компилируется в общее промежуточное представление, которое сохраняет метаданные и информацию о типе. Таким образом, среда выполнения .NET может загружать и взаимодействовать с кодом, который может быть написан на разных языках .NET. Эта гибкость стала возможной благодаря нескольким функциям .NET, включая систему общих типов, CLR и MSIL.

0 голосов
/ 13 июля 2010

Это зависит от того, что вы имеете в виду.Доступ к любому общедоступному члену в классе возможен, и не имеет значения, на каком языке написан класс. Однако их необходимо будет скомпилировать в отдельные сборки.

0 голосов
/ 13 июля 2010

Да, все эти языки компилируются в общий промежуточный язык и работают в управляемой среде.

Если бы вы написали класс на каждом языке (у вас был бы проект библиотеки классов для каждого), вы могли бы использовать эти классы вместе в любом проекте с использованием языка, предназначенного для среды выполнения .Net.

...