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

[ 1 ] 2 3 4 ... 10


C#, Visual Basic

C# - это язык программирования, спроектированный специально для .NET. Существует более 50 языков для написания приложений .NET, например, Eiffel, Smalltalk, COBOL, Haskell, Pizza, Pascal, Delphi, Oberon, Prolog, Ruby и многие другие. Лишь только одна корпорация Microsoft поставляет языки C#, Visual Basic, C++/CLI, J# и JScript.NET.

Каждый язык обладает своими достоинствами и недостатками; некоторые вещи легко делать на одном языке, но сложно - на другом. Классы .NET Framework всегда одни и те же, но синтаксис языка абстрагирует различные средства .NET Framework. Например, оператор using в C# облегчает использование объектов, реализующих интерфейс IDisposable. На других языках может понадобиться больше кода для реализации той же функциональности.

Наиболее часто используемыми языками .NET от Microsoft являются C# и Visual Basic. C# был изначально разработан для .NET, почерпнув идеи из C++, Java, Pascal и других языков. Visual Basic уходит корнями в Visual Basic 6, и был расширен объектно-ориентированными средствами для .NET.

С++/CLI - это расширение C++, соответствующее стандарту ECMA (ECMA 372). Значительное преимущество C++/CLI состоит в способности смешивать родной код с управляемым кодом. Вы можете расширить существующие приложения, которые используют родной С++, добавив к ним функциональность .NeT, а также вы можете добавлять классы .NET к родным библиотекам, чтобы их можно было использовать из других языков .NET, таких как C#. Также возможно писать полностью управляемые приложения на C++/CLI.

Эта глава посвящена переводу приложений .NET с одного языка на другой. Если вы увидите пример кода на Visual Basic или C++/CLI, то легко сможете отобразить их на C#, и наоборот.

Ниже перечислены темы, которые рассматриваются в этой главе:

□ пространства имен;

□ определение типов;

□ методы;

□ массивы;

□ управляющие операторы;



□ циклы;

□ обработка исключений;

□ наследование;

□ управление ресурсами;

□ делегаты;

□ события;

□ обобщения;

□ запросы LINQ;

□ смешивание родного и управляемого кода в C++/CLI.

Здесь предполагается наличие у вас знаний языка C#, а также ознакомление с несколькими перв1ми главами настоящей книги. Знать Visual Basic и C++/CLI не обязательно.

Пространства имен

Типы .NET организованы в пространства имен. Синтаксис определения и использования пространств имен в этих трех языках существенно отличается.

Чтобы импортировать пространства имен, C# использует ключевое слово using. C++/CLI полностью опирается на синтаксис C++ с оператором using namespace. В Visual Basic для импорта пространств имен предусмотрено ключевое слово Imports.

В C# вы можете определять псевдонимы для классов. В C++/CLI и Visual Basic псевдонимы могут ссылаться только на другие пространства имен, но не на классы. C++ требует ключевого слова namespace для определения псевдонима, и то же ключевое слово используется для определения пространства имен. В Visual Basic, опять-таки, применяется ключевое слово Imports.

Для определения пространств имен все три языка используют ключевое слово namespace, но и здесь имеются отличия. В C++/CLI вы не можете определять иерархические пространства имен в одном операторе namespace; вместо этого пространства имен должны быть вложены друг в друга. Есть одно существенное отличие в настройках проекта: объявление пространства имен в настройках проекта C# определяет пространство имен по умолчанию, которое появляется в коде всех новых элементов, добавляемых в проект. В настройках проекта Visual Basic вы определяете корневое пространство имен, используемое всеми элементами проекта. Пространства имен, объявленные в исходном коде, определяют только подпространства внутри этого корневого пространства имен.

C#

using System;

using System.Collections.Generic; using Assm = Wrox.ProCSharp.Assemblies; namespace Wrox.ProCSharp.Languages

C++/CLI

using namespace System;

using namespace System::Collections::Generic; namespace Assm = Wrox.ProCSharp.Assemblies; namespace Wrox

namespace ProCSharp



namespace Languages { }

Visual Basic Imports System

Imports System.Collections.Generic Imports Assm = Wrox.ProCSharp.Assemblies

Namespace Wrox.ProCSharp.Languages End Namespace

Определение типов

.NET различает типы ссылочные и типы значений. В C# ссылочные типы определяются классами, а типы значений - структурами. Помимо того, как создавать ссылочные и типы значений, в этой главе мы также покажем, как определяются интерфейсы (ссылочные типы) и перечисления (типы значений).

Ссылочные типы

Для объявления ссылочного типа в C# и Visual Basic предусмотрено ключевое слово class. В C++/CLI класс и структура - это почти одно и то же; вы не должны отличать ссылочный тип от типа значений, как это делается в C# и Visual Basic. C++/CLI имеет ключевое слово ref для определения управляемого класса. Вы можете создавать ссылочный тип, определяя ref class или ref struct.

И в C#, и в C++/CLI класс заключается в фигурные скобки. В C++/CLI не забывайте ставить точку с запятой в конце объявления класса. В Visual Basic в конце класса помещается оператор End Class.

C#

public class MyClass

C++/CLI

public ref class MyClass

Visual Basic Public Class MyClass End Class

При использовании ссылочного типа переменная должна быть объявлена, а объект должен быть распределен в управляемой куче. При объявлении дескриптора ссылочного типа C++/CLI определяет операцию , которая отчасти похожа на указатель * в C++. Операция gcnew распределяет память в управляемой куче. Используя C++/CLI, можно также объявить переменную локально, но для ссылочных типов объект все равно сохраняется в управляемой куче. В Visual Basic объявление переменной начинается с оператора Dim, за которым следует имя переменной. С помощью операции new и указания объектного типа переменная распределяется в управляемой куче.

C#

MyClass obj = new MyClass();

C++/CLI

MyClass obj = gcnew MyClass(); MyClass obj2; Visual Basic Dim obj as New MyClass()



[ 1 ] 2 3 4 ... 10

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