|
Программирование >> C# visual basicc#
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()
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |