Программирование >>  C# visual basicc# 

1 [ 2 ] 3 4 5 ... 10


Если ссылочный тип не ссылается на память, все три языка используют разные ключевые слова: C# определяет литерал null, C++/CLI - nullptr (NULL допускается только с родными объектами), а Visual Basic - Nothing.

Предопределенные ссылочные типы перечислены в табл. Б.1. В C++/CLI не определены строковые и объектные типы, как это делается в других языках. Разумеется, вы можете использовать классы, определенные в .NET Framework.

Таблица Б.1. Предопределенные ссылочные типы

Тип .NET

C++/CLI

Visual Basic

System.Object

object

Не определено

Object

System.String

string

Не определено

String

Типы значений

Для объявления типа значения в 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. Предопределенные типы значений

Тип .NET

C++/CLI

Visual Basic

Размер

Char

char

wchar t

Char

2 байта

Boolean

bool

Bool

Boolean

1 байт, содержит true

или false

Int16

short

short

Short

2 байта

UInt16

ushort

unsigned short

UShort

2 байта без знака

Int32

Integer

4 байта

UInt32

uint

unsigned int

UInteger

4 байта без знака

Int64

long

long long

Long

8 байт

UInt64

ulong

unsigned long

ULong

8 байт без знака

Это может быть сделано с помощью ключа компилятора /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



1 [ 2 ] 3 4 5 ... 10

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика