Симон Робинсон - C# для профессионалов. Том II
- Название:C# для профессионалов. Том II
- Автор:
- Жанр:
- Издательство:Лори
- Год:2003
- Город:Москва
- ISBN:5-85582-187-0
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Симон Робинсон - C# для профессионалов. Том II краткое содержание
Платформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.
В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.
Для кого предназначена эта книгаЭта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.
Основные темы книги• Все особенности языка C#
• C# и объектно-ориентированное программирование
• Приложения и службы Windows
• Создание web-страниц и web-служб с помощью ASP NET
• Сборки .NET
• Доступ к данным при помощи ADO NET
• Создание распределённых приложений с помощью NET Remoting
• Интеграция с COM, COM+ и службой Active Directory
C# для профессионалов. Том II - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
public interface _InterfaceName; // с предшествующим подчеркиванием
public void method(){}
public void methodName(){}
public void longMethodName(){}
public void reallyLongMethodName(){}
На основе библиотеки классов, предоставленной компанией Microsoft для C#, можно сделать некоторые предположения о стандартах наименований в C#. Документированные рекомендации по именованию для C# не были представлены в то время когда писалась эта книга. Каждая первая буква идентифицирующих имен всех методов и свойств будет заглавной, так же как и каждая первая буква имен всех классов и пространств имен (рассматриваемых позже). Интерфейсы используют в качестве первого символа I
. Некоторые примеры приведены ниже:
int id;
int idName;
public class ClassName // каждая первая буква заглавная
public interface IInterfaceName // имени интерфейса предшествует I
public void Method(){} // первая буква всегда заглавная
public void MethodName(){} // первая буква всех других слов
// будет заглавная
public void LongMethodName(){}
public void ReallуLongMetodName(){}
Ключевые слова
Как известно, ключевое слово является специальным зарезервированным словом языка. Мы уже встречали некоторые из них допустим, объявление переменной как целого числа с помощью int
. Другими примерами ключевых слов являются public
, class
, static
и void
в листингах кода в этом приложении.
Ключевые слова можно разделить на ряд категорий в связи с их назначением. В этом разделе мы выделим и определим каждую категорию, а также идентифицируем ключевые слова. Реальные ключевые слова будут идентифицироваться своими версиями в Java, чтобы можно было легко их находить. Затем будет дан эквивалент C# (если существует). Для тех ключевых слов, которые присутствуют только в Java, будет предоставлено лучшее соответствие. Ключевые слова, представленные в C#, но не в Java, будут даны в своей собственной категории с лучшим приблизительным эквивалентом в Java (если такой существует).
Примитивные типы данных в обоих языках ссылаются на низкоуровневые типы значений языка. Конечно, диапазон значений указанных типов может различаться в том или другом языке. Логические значения в C# идентифицируются ключевым словом bool в противоположность boolean в Java. Ниже представлен табличный список типов данных Java и их аналогов в C#:
Тип Java | Описание | Эквивалентный тип C# | Описание |
---|---|---|---|
byte |
8-битовое со знаком | sbyte |
8-битовое со знаком |
short |
16-битовое со знаком | short |
16-битовое со знаком |
int |
32-битовое со знаком | int |
32-битовое со знаком |
long |
64-битовое со знаком | long |
64-битовое со знаком |
float |
32-битовое число с плавающей точкой со знаком | float |
32-битовое число с плавающей точкой со знаком |
double |
64-битовое число с плавающей точкой со знаком | double |
64-битовое число с плавающей точкой со знаком |
boolean |
true/false | bool |
true/false |
char |
2-байтовый Unicode | char | 2-байтовый Unicode |
Существует также ряд типов, поддерживаемых C#, которые Java не использует. Таблица ниже выделяет эти типы данных.
Уникальный тип данных C# | Описание |
---|---|
Byte |
8-битовое целое без знака |
ushort |
16-битовое целое без знака |
Uint |
32-битовое целое без знака |
ulong |
64-битовое целое без знака |
decimal |
128-битовое |
Эти ключевые слова сами являются переменными. Оба языка, Java и C#, имеют по три ключевых слова, которые попадают в эту категорию. Ключевые слова this
и void
обладают в обоих языках одинаковой функциональностью.
super
— эта ссылочная переменная используется для указания класса-предка. В C# эквивалентом является base
. Возьмем класс Power
, который предоставляет возможность найти степень заданного числа и степень, в которую требуется возвести (при условии, что не происходит переполнение):
public class SuperEX {
int power;
public SuperEX(int power) {
this.power = power;
}
public int aMethod(int x) {
int total = 1;
for (int i = 0; i < power; i++) {
total *= x;
}
return total;
}
public static void main(String args[]) {
SuperEX x = new SuperEX(Integer.parseInt(args[0]));
int tot = x.aMethod(Integer.parseInt(args[1]));
System.out.println(tot);
}
}
Класс-потомок этого класса сможет получить доступ к методу aMethod
с помощью вызова super.aMethod()
, к переменной power
— с помощью вызова super.power =
, и даже к конструктору — с помощью вызова super()
, где может быть любым целым литералом, переменной или константой.
Аналогично в C# класс-потомок этого класса сможет получить доступ к методу aMethod
с помощью вызова super.aMethod()
и к переменной power
— с помощью вызова super.power =
. Сделать вызов базового конструктора тоже возможно, синтаксис, однако, будет отличаться. Пример ниже является эквивалентом в C# для SuperEX:
namespace SuperEX {
using System;
public class SuperEX {
internal int power;
public SuperEX(int power) {
this.power = power;
}
public int aMethod(int x) {
int total = 1;
for (int i = 0; i < power; i++) {
total *= x;
}
return total;
}
public static void Main(String [] args) {
SuperEX x = new SuperEX(int.Parse(args[0]));
int tot = x.aMethod(int.Parse(args[1]));
Console.WriteLine(tot);
}
}
public class Child: SuperEX {
public Child() : base(55) { }
}
}
Как можно видеть на примере класса-потомка Child
, вызов конструктора базового класса является частью объявления конструктора класса-потомка. Программист может по своему усмотрению определить список параметров конструктора класса-потомка, но ссылка на конструктор базового класса должна соответствовать списку аргументов, требуемых базовым классом. В данном примере конструктор потомка может получить форму : base constructor()
, где может быть любым целым литералом, переменной или константой, a представляет любой конструктор потомка, который хочет воспользоваться конструктором базового класса. Более общая версия, как получить доступ к конструктору базового класса, представлена ниже:
ChildConstructor(argument_list) : BaseConstructor(argument_list)
Так же как в Java, в C# инструкции import
предоставляют доступ к пакетам и классам в коде без полной квалификации, директива using
может использоваться для того, чтобы сделать компоненты пространства имен видимыми в классе без полной квалификации. В C# не существует эквивалента инструкции package
. Чтобы сделать класс частью пространства имен, надо поместить его в объявление пространства имен. Пространства имен будут обсуждаться более подробно позже в этой главе.
Интервал:
Закладка: