|
Программирование >> C# visual basicc#
Если ссылочный тип не ссылается на память, все три языка используют разные ключевые слова: C# определяет литерал null, C++/CLI - nullptr (NULL допускается только с родными объектами), а Visual Basic - Nothing. Предопределенные ссылочные типы перечислены в табл. Б.1. В C++/CLI не определены строковые и объектные типы, как это делается в других языках. Разумеется, вы можете использовать классы, определенные в .NET Framework. Таблица Б.1. Предопределенные ссылочные типы
Типы значений Для объявления типа значения в C# используется ключевое слово struct, в C++/ CLI - ключевое слово value, а в Visual Basic - Structure. C# public struct MyStruct C++/CLI public value class MyStruct Visual Basic Public Structure MyStruct End Structure В C++/CLI вы можете распределить тип значения в стеке, в родной куче с использованием операции new и в управляемой куче с помощью операции gcnew. C# и Visual Basic не предоставляют таких опций, но эти опции важны, когда родной и управляемый код смешиваются в C++/CLI. C# MyStruct ms; C++/CLI MyStruct ms1; MyStruct* pms2 = new MyStruct(); MyStruct hms3 = gcnew MyStruct(); Visual Basic Dim ms as MyStruct Предопределенные типы значений для разных языков перечислены в табл. Б.2. В C++/CLI тип char имеет размер в 1 байт для символа ASCII. В C# char имеет размер 2 байта для символов Unicode; то же самое в C++/CLI называется wchar t. Стандарт ANSI для C++ определяет только short <= int <= long. На 32-разрядных машинах и int, и long имеют размер 32 бита. Чтобы определить 64-битную переменную в C++, нужно объявить ее как long long. Выведение типа C# 3.0 позволяет определять локальную переменную без явного объявления типа - с помощью ключевого слова var. Тип выводится из присваиваемого начального значения. Visual Basic предоставляет то же средство, используя ключевое слово Dim, если включена опция Option infer. Таблица Б.2. Предопределенные типы значений
Это может быть сделано с помощью ключа компилятора /optioninfer+ или на странице конфигурации проекта в Visual Studio. C# var x = 3; Visual Basic Dim x = 3 Интерфейсы Определение интерфейсов очень похоже во всех трех языках. Все они используют ключевое слово interface: C# public interface IDisplay void Display(); C++/CLI public interface class IDisplay void Display(); Visual Basic Public Interface IDisplay Sub Display End Interface Реализация интерфейсов отличается. В C# и C++/CLI используется двоеточие после имени класса, за которым следует имя интерфейса. Методы, определенные в интерфейсе, реализуются. В C++/CLI методы должны быть объявлены виртуальными ( virtual ). Для реализации интерфейса в Visual Basic используется ключевое слово Implements, и методы, определенные интерфейсом, также должны сопровождаться ключевым словом Implements. C# public class Person : IDisplay public void Display() C#, явная реализация интерфейса public class Person : IDisplay void IDisplaey.Display() C++/CLI public ref class Person : IDisplay public: virtual void Display(); Visual Basic Public Class Person Implements IDisplay Public Sub Display Implements IDisplay.Display End Sub End Class Перечисления Перечисления определяются сходным образом во всех трех языках с помощью ключевого слова enum (только в Visual Basic для разделения элементов используется перевод строки, а не запятая). C# public enum Color Red, Green, Blue C++/CLI public enum class Color Red, Green, Blue Visual Basic Public Enum Color Green Blue End Enum Методы Методы всегда объявляются внутри класса. Синтаксис C++/CLI очень похож на C# за исключением того, что модификатор доступа не является частью объявления метода, а записывается перед ним. Модификатор доступа должен завершаться двоеточием. В Visual Basic для определения метода используется ключевое слово Sub. C# public class MyClass public void Foo() C++/CLI public ref class MyClass
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |