Hello World -- Your First Program



Руководство по программированию на C# Компиляция на двух языках из MSDN Visual Studio   Методическое пособие для занятий по информатике на физфаке ЮФУ   Фомин Г.В.

Оглавление

Оглавление. 2

C# Programming Guide. 9

Inside a C# Program.. 9

Hello World -- Your First Program.. 9

Руководство по программированию на C#. 9

Структура программы C#. 9

Hello World – Создаем первую программу. 9

General Structure of a C# Program.. 12

Общая структура программы на C#. 12

Main() and Command Line Arguments. 13

Overview. 13

Main() и аргументы командной строки. 13

Общие сведения. 13

Command-Line Arguments. 14

How to: Display Command Line Arguments. 17

Отображение аргументов командной строки. 17

How to: Access Command-Line Arguments Using foreach. 18

Доступ к аргументам командной строки с помощью оператора "foreach" 18

Main() Return Values. 19

Значения, возвращаемые методом Main() 19

Types. 21

Data Types Overview. 21

Типы. 21

Общие сведения о типах данных. 21

Casting. 22

Приведение. 22

Boxing and Unboxing. 23

Упаковка-преобразование и распаковка-преобразование. 23

How to: Convert a byte Array to an int 28

Преобразование массива байтов в значение типа "int" 28

How to: Convert a string to an int 30

Преобразование строки в значение типа "int" 30

How to: Convert Hexadecimal Strings. 32

Преобразование шестнадцатеричных строк. 32

Arrays. 34

Array Overview. 34

Массивы. 34

Общие сведения о массивах. 34

Arrays as Objects. 35

Массивы как объекты. 35

Single-Dimensional Arrays. 36

Одномерные массив. 36

Multidimensional Arrays. 37

Многомерные массивы. 37

Jagged Arrays. 38

Массивы массивов. 38

Using foreach with Arrays. 41

Использование оператора foreach с массивами. 41

Passing Arrays as Parameters. 42

Передача массивов в качестве параметров. 42

Passing Arrays Using ref and out 46

Передача массивов при помощи параметров ref и out 46

Implicitly Typed Arrays. 49

Неявно типизированные массивы. 49

Strings. 51

Using Strings. 51

Строки. 51

Использование строк. 51

How to: Parse Strings Using the Split Method. 57

Анализ строк с помощью метода разделения. 57

How to: Search Strings Using String Methods. 58

Навигация по содержимому строки с помощью строковых методов. 58

How to: Search Strings Using Regular Expressions. 59

Анализ строк с помощью регулярных выражений. 59

How to: Join Multiple Strings. 61

Объединение нескольких строк. 61

How to: Modify String Contents. 62

Изменение содержимого строки. 62

How to: Determine Whether a String Contains a Numeric Value. 63

Определение наличия числового значения в строке. 63

Encoding Base Types. 65

Базовые типы кодировки. 65

Formatting Types. 67

Formatting Overview. 67

Типы форматирования. 67

Общие сведения о форматировании. 67

Composite Formatting. 73

Составное форматирование. 73

Numeric Format Strings. 79

Строки числовых форматов. 79

.NET Framework Regular Expressions. 102

Регулярные выражения в .NET Framework. 102

Regular Expressions as a Language. 103

Регулярные выражения как язык. 103

Character Escapes. 104

Escape-знаки. 104

How to: Perform String Manipulations by Using Basic String Operations. 106

Example. 106

Выполнение действия со строками с помощью основных строковых операций 106

Пример. 106

Parsing Strings. 110

Parsing Numeric Strings. 110

Разбор строк. 110

Разбор числовых строк. 110

Statements, Expressions, and Operators. 113

Statements. 113

Операторы и выражения. 113

Операторы. 113

Expressions. 114

Выражения. 114

Operators. 116

Операторы. 116

Anonymous Functions. 121

Анонимные функции. 121

Overloadable Operators. 133

Перегружаемые операторы. 133

Conversion Operators. 134

Операторы преобразования. 134

How to: Use Operator Overloading to Create a Complex Number Class. 141

Перегрузка операторов для реализации класса комплексных чисел. 141

Guidelines for Overloading Equals() and Operator ==. 142

Правила переопределения метода Equals и оператора равенства (==) 142

Objects, Classes and Structs. 146

Overview. 146

Объекты, классы и структуры. 146

Общие сведения. 147

Члены. 147

Доступность. 147

Наследование. 148

Интерфейсы. 148

Универсальные типы. 148

Статические типы. 148

Вложенные типы. 149

Разделяемый класс. 149

Инициализаторы объектов. 149

Анонимные типы. 149

Методы расширения. 149

Неявно типизированные локальные переменные. 149

Objects. 150

Объекты. 150

Classes. 153

Классы. 153

Structs. 157

Структуры. 157

Inheritance. 161

Наследование. 161

Interfaces. 181

Интерфейсы. 181

Members. 190

Члены. 190

Methods. 191

Методы. 191

Constructors. 203

Конструкторы. 203

Fields. 224

Поля. 224

Constants. 226

Константы. 226

Nested Types. 227

Вложенные типы. 227

Access Modifiers. 228

Модификаторы доступа. 228

Partial Classes and Methods. 230

Разделяемые классы и методы. 230

Static Classes and Static Class Members. 237

Статические классы и члены статических классов. 237

How to: Know the Difference Between Passing a Struct and Passing a Class Reference to a Method 243

Определение различия между передачей структуры и ссылки класса в метод 243

Anonymous Types. 244

Анонимные типы. 244

Extension Methods. 248

Методы расширения. 248

Implicitly Typed Local Variables. 250

Неявно типизированные локальные переменные. 250

Properties. 253

Example. 253

Свойства. 253

Пример. 253

Output 254

Properties Overview. 254

Результат 254

Общие сведения о свойствах. 254

Using Properties. 255

Использование свойств. 255

Interface Properties. 266

Свойства интерфейса. 266

Asymmetric Accessor Accessibility. 269

Асимметричные методы доступа. 269

How to: Declare and Use Read/Write Properties. 275

Объявление и использование свойств чтения и записи. 275

Auto-Implemented Properties. 278

Автоматически реализуемые свойства. 278

How to: Implement a Lightweight Class with Auto-Implemented Properties. 279

Реализация облегченного класса с автоматически реализуемыми свойствами 279

Indexers. 280

Indexers Overview. 280

Индексаторы. 280

Общие сведения об индексаторах. 280

Using Indexers. 281

Использование индексаторов. 281

Indexers in Interfaces. 286

Индексаторы в интерфейсах. 286

Comparison Between Properties and Indexers. 289

Сравнение свойств и индексаторов. 289

Delegates. 290

Delegates Overview. 290

Делегаты. 290

Общие сведения о делегатах. 290

Using Delegates. 291

Использование делегатов. 291

Delegates with Named vs. Anonymous Methods. 295

Делегаты с именованными методами и делегаты с анонимными методами. 295

When to Use Delegates Instead of Interfaces. 298

Использование делегатов вместо интерфейсов. 298

Covariance and Contravariance in Delegates. 299

Ковариация и контрвариация в делегатах. 299

How to: Combine Delegates (Multicast Delegates) 301

Объединение делегатов (многоадресные делегаты) 301

How to: Declare, Instantiate, and Use a Delegate. 302

Объявление, создание экземпляра и использование делегата. 302

Events. 306

Events Overview. 306

События. 306

Общие сведения о событиях. 306

How to: Subscribe to and Unsubscribe from Events. 307

Подписка и отмена подписки на события. 307

How to: Publish Events that Conform to .NET Framework Guidelines. 310

Публикация событий, соответствующих рекомендациям .NET Framework. 310

How to: Raise Base Class Events in Derived Classes. 314

Создание событий базового класса в производных классах. 314

How to: Raise and Consume Events. 320

Вызов и прием событий. 320

How to: Implement Interface Events. 326

Реализация событий интерфейса. 326

How to: Use a Dictionary to Store Event Instances. 331

Использование словаря для хранения экземпляров событий. 331

Generics. 333

Generics Overview. 333

Универсальные шаблоны. 333

Общие сведения об универсальных шаблонах. 333

Introduction to Generics. 334

Введение в универсальные шаблоны. 334

Benefits of Generics. 337

Преимущества универсальных шаблонов. 337

Generic Type Parameters. 339

Параметры универсального типа. 339

Namespaces. 340

Namespaces Overview. 340

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

Общие сведения о пространствах имен. 340

Using Namespaces. 341

Использование пространств имен. 341

How to: Use the Namespace Alias Qualifier 345

Использование квалификатора псевдонима пространства имен. 345

Nullable Types. 347

Типы, допускающие значения null 347

Nullable Types Overview. 348

Общие сведения о типах, допускающих значения null 348

Using Nullable Types. 349

Использование типов, допускающих значение null 349

How to: Identify a Nullable Type. 355

Идентификация типа, допускающего значение null 355

Unsafe Code and Pointers. 356

Unsafe Code Overview. 356

Небезопасный код и указатели. 356

Общие сведения о небезопасном коде. 356

Fixed Size Buffers. 357

Буферы фиксированного размера. 357

Pointer types. 359

Типы указателей. 359

XML Documentation Comments. 372

Recommended Tags for Documentation Comments. 372

Комментарии XML-документации. 372

Рекомендуемые теги для комментариев документации. 372

How to: Use the XML Documentation Features. 373

Использование XML-документации. 373

Application Domains. 377

Application Domains Overview. 377

Домены приложений. 377

Общие сведения о доменах приложений. 377

Executing Code in Another Application Domain. 378

Выполнение кода в другом домене приложения. 378

Assemblies and the Global Assembly Cache. 380

Assemblies Overview. 380

Сборки и глобальный кэш сборок. 380

Общие сведения о сборках. 380

Attributes. 381

Attribute Overview. 381

Атрибуты. 381

Общие сведения об атрибутах. 381

Using Attributes. 382

Использование атрибутов. 382

How to: Create a C/C++ Union Using Attributes. 383

Создание объединения C/C++ с помощью атрибутов. 383

Common Attributes. 384

Общие атрибуты. 384

Exceptions and Exception Handling. 388

Исключения и обработка исключений. 388

Exceptions Overview. 389

Общие сведения об исключениях. 389

Using Exceptions. 390

Использование исключений. 390

Exception Handling. 393

Обработка исключений. 393

Creating and Throwing Exceptions. 396

Создание и генерация исключений. 396

Compiler-Generated Exceptions. 399

Исключения, создаваемые компилятором. 399

How to: Handle an Exception Using try/catch. 400

Обработка исключений с помощью блока try-catch. 400

How to: Execute Cleanup Code Using finally. 401

Выполнение кода очистки с использованием блока finally. 401

Interoperability. 403

How to: Use Platform Invoke to Play a Wave File. 403

Взаимодействие. 403

Использование вызова неуправляемого кода для воспроизведения звукового файла 403

PlaySound. 406

Threading. 409

Threading. 409

Overview. 409

Создание потоков. 409

Общие сведения. 409

Using Threading. 410

Использование потоков. 410

Thread Synchronization. 411

Синхронизация потоков. 411

How to: Create and Terminate Threads. 416

Создание и завершение потоков. 416

How to: Synchronize a Producer and a Consumer Thread. 420

Синхронизация потока-производителя и потока-потребителя. 420

How to: Use a Thread Pool 429

Использование пула потоков. 429

Reflection. 433

Reflection Overview. 433

Отражение. 433

Общие сведения об отражении. 433

C# DLLs. 434

How to: Create and Use C# DLLs. 434

Библиотеки C#. 434

Создание и использование библиотек DLL на языке C#. 434

Security. 437

C# Specific Security Recommendations. 437

Безопасность. 437

Рекомендации по безопасности, касающиеся языка C# в отдельности. 437

Consuming Unmanaged DLL Functions. 438

To consume exported DLL functions. 438

Использование неуправляемых функций DLL. 438

Применение экспортированных функций DLL. 438

A Closer Look at Platform Invoke. 439

Подробный обзор вызова неуправляемого кода. 439

Identifying Functions in DLLs. 440

Идентификация функций в библиотеках DLL. 440

Creating a Class to Hold DLL Functions. 441

Создание класса, содержащего функции DLL. 441

Creating Prototypes in Managed Code. 442

Declaration Basics. 442

Создание прототипов в управляемом коде. 442

Основы описания. 442

Adjusting the Definition. 443

Настройка описания. 443

Specifying an Entry Point 444

Задание точки входа. 444

Calling a DLL Function. 445

Passing Structures. 445

Вызов функции DLL. 445

Передача структур. 445

File and Stream I/O. 448

Basic File I/O. 448

Файловый и потоковый ввод-вывод. 448

Основы файлового ввода-вывода. 448

Classes Used for File I/O. 449

Классы, используемые в файловом вводе и выводе. 449

Classes Used for Reading from and Writing to Streams. 450

Классы, используемые для чтения и записи в поток. 450

Common I/O Stream Classes. 451

I/O and Security. 451

Общие классы потокового ввода и вывода. 451

Ввод-вывод и безопасность. 451

How to: Create a Directory Listing. 452

Создание списка каталогов. 452

How to: Read and Write to a Newly Created Data File. 454

Считывание из нового файла данных и запись в этот файл. 454

How to: Copy Directories. 455

Копирование каталогов. 455

How to: Open and Append to a Log File. 456

Открытие файла журнала и добавление в него данных. 456

How to: Write Text to a File. 457

Запись текста в файл. 457

How to: Read Text from a File. 458

Считывание текста из файла. 458

How to: Read Characters from a String. 460

Считывание символов из строки. 460

How to: Write Characters to a String. 461

Запись символов в строку. 461

How to: Add or Remove Access Control List Entries. 462

Добавление или удаление записей списка управления доступом. 462

How to: Compress Files. 465

Сжатие файлов. 465

Composing Streams. 467

Создание потоков. 467

Creating a Writer 469

Создание класса Writer 469

Collections and Data Structures. 470

Коллекции и структуры данных. 470

Defining Collections. 471

Определение коллекций. 471

Selecting a Collection Class. 473

Выбор класса коллекции. 473

Introduction to Solutions, Projects, and Items. 475

Containers: Solutions and Projects. 475

Items: Files, References, Data Connections. 475

Знакомство с решениями, проектами и элементами. 475

Контейнеры: проекты и решения. 475

Элементы: файлы, ссылки, подключения к данным. 475

Solutions as Containers. 476

Решения как контейнеры. 476

Solutions. 477

Решения. 477

Projects as Containers. 478

Проекты как контейнеры. 478

Using the Visual C# IDE. 481

Introduction to the IDE. 481

Использование интегрированной среды разработки Visual C#. 481

Введение в интегрированную среду разработки. 481

Visual C# Tools. 482

Средства Visual C#. 482

Доступ к средствам в интегрированной среде разработки. 483

Solution Explorer and Project Designer 484

Настройка интегрированной среды разработки. 484

Creating a Project 485

Creating a New Project 485

Создание проекта. 485

Создание нового проекта. 485

What's in Your Project?. 488

Состав проекта. 488

Modifying Project Properties. 490

Изменение свойств проекта. 490

Designing a User Interface. 494

Adding Controls. 494

Создание пользовательского интерфейса. 494

Добавление элементов управления. 494

Setting Properties. 496

Handling Events. 496

Задание свойств. 496

Обработка событий. 496

Editing Code. 497

IntelliSense. 497

Редактирование кода. 497

IntelliSense. 497

Refactoring. 500

Code Snippets. 500

Wavy underlines. 500

Оптимизация кода. 500

Фрагменты кода. 500

Подчеркивание волнистой линией. 500

Readability Aids. 501

Средства обеспечения удобочитаемости кода. 501

Navigating and Searching. 502

Class View. 502

Навигация и поиск. 502

Представление классов. 502

CTRL-TAB Navigation. 503

Навигация CTRL-TAB. 503

Navigation Bars. 504

Панели переходов. 504

Find in Files. 505

Object Browser 505

Navigation Stacks. 505

Поиск в файлах. 505

Обозреватель объектов. 505

Стеки навигации. 505

Building and Debugging. 506

Build Settings. 506

Build Errors. 506

Построение и отладка. 506

Параметры построения. 506

Ошибки построения. 506

Release vs. Debug configurations. 508

Debugging. 508

Сравнение отладочной и выпускной конфигураций. 508

Отладка. 508

Modeling and Analyzing Code. 511

Class Designer 511

Моделирование и анализ кода. 511

Конструктор классов. 511

Object Browser 513

Обозреватель объектов. 513

Metadata as Source: 514

Code Analysis for Managed Code. 514

Метаданные как источник. 514

Анализ управляемого кода. 514

Adding and Editing Resources. 515

Adding Resources to Projects. 515

Добавление и редактирование ресурсов. 515

Добавление ресурсов в проекты. 515

Editing Resources. 516

Редактирование ресурсов. 516

Compiling Resources into Assemblies. 517

Accessing Resources at Run-Time. 517

Компиляция ресурсов в сборки. 517

Доступ к ресурсам во время выполнения. 517

Getting Help. 518

Online vs. Local Help. 518

Получение справки. 518

Локальная справка и справка в Интернете. 518

F1 Search. 519

Search. 519

Поиск по F1. 519

Поиск. 519

Index. 520

Table of Contents. 520

Указатель. 520

Содержание. 520

How Do I 521

Dynamic Help. 521

Samples. 521

Инструкции. 521

Динамическая справка. 521

Примеры. 521

Refactoring. 522

Multi-Project Refactoring. 522

Preview Changes Dialog Box. 522

Error-Tolerant Refactoring. 522

Оптимизация. 522

Многопроектная оптимизация. 522

Диалоговое окно "Предварительный просмотр изменений" 522

Допускающая наличие ошибок оптимизация. 522

Extract Method. 523

Извлечение метода. 523

Rename. 525

Переименовать. 525

Promote Local Variable to Parameter 528

Превращение локальной переменной в параметр. 528

Заметки. 529

Code Colorization. 531

Tokens. 531

Разметка кода цветом. 531

Лексемы. 531

Contextual Keywords. 532

Brace Matching Colorization. 532

Bold Colorization. 532

Контекстные ключевые слова. 532

Разметка цветом для обозначения парности фигурных скобок. 532

Разметка цветом и жирным шрифтом. 532

Highlight Colorization. 533

Разметка цветом и выделение цветным фоном. 533

 


C# Programming Guide

This section provides detailed information on key C# language features and features accessible to C# through the .NET Framework.

Inside a C# Program

The section discusses the general structure of a C# program, and includes the standard "Hello, World!" example.

Hello World -- Your First Program

The following console program is the C# version of the traditional "Hello World!" program, which displays the string Hello World!.

using System; // A "Hello World!" program in C# namespace HelloWorld { class Hello {    static void Main()    {        System.Console.WriteLine("Hello World!");    } } }

Let us now examine the important parts of this program in turn.

Comments

The first line contains a comment:

// A "Hello World!" program in C#

The characters // convert the rest of the line to a comment. You can also comment a block of text by enclosing it between the /* and */ characters, for example:

/* A "Hello World!" program in C#. This program displays the string "Hello World!" on the screen. */

Руководство по программированию на C#

В этом разделе представлены подробные сведения об основных возможностях языка C#, а также о функциях, доступных в этом языке благодаря платформе .NET Framework.

Структура программы C#

В данном разделе рассматривается общая структура программы C# и приведен стандартный пример "Здравствуй, мир!".


Дата добавления: 2019-03-09; просмотров: 244; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!