Чтение онлайн

ЖАНРЫ

C# для профессионалов. Том II

Ватсон Карли

Шрифт:

System.Console.WriteLine("Hello world! This is C# code!");

 }

}

Прежде всего можно заметить, что эти два кода очень похожи, по большей части различия незначительны (такие, как использование заглавных букв в

string
и
Main
и использование
System.Console.WriteLine
вместо
System.out.println
). Он является, с другой стороны, по-прежнему зависимым от регистра символов.

Необходимо отметить тип

string
, который в C# также может записываться с заглавной S — как
String
. Следовательно,
приведенный выше код можно записать в следующем виде:

public class Hello {

 public static void Main(String [] args) {

System.Console.WriteLine("Hello world! This is C# code!");

 }

}

Можно заметить, что спецификатор ранга массива

[]
перемещен из позиции перед переменной
args
в примере Java в положение между типом
string
и переменной
args
в примере C#. В C# спецификатор ранга массива должен появляться перед именем переменной, так как массив является на самом деле типом данных, что указывается с помощью
[]
:

// C#

int [] X; // массив целых чисел в C#

// пример java

int [] х; // массив целых чисел в java

int x[]; // массив целых чисел в java

Тот же самый код C# можно также представить следующим образом:

using System;

class Hello {

 public static int Main {

Console.WriteLine ("Hello world! This is C# code!");

return 0;

 }

}

Как можно видеть, изменилось несколько элементов. Объявление

string [] args
в сигнатуре метода является в C# необязательным (хотя скобки должны стоять перед именем параметра), как и использование public при объявлении метода. Ключевое слово
using
аналогично по смыслу ключевому слову
include
в Java, и так как
System
является используемым по умолчанию включением в C#, первая строка позволяет нам опустить
System
, которое находилось перед
Console.WriteLine
. Поскольку мы используем в этом примере
int
вместо
void
, необходимо включить строку
return 0;
.

Блоки кода C# заключаются в фигурные кавычки, также как в Java. Можно сказать, что метод

Main
является частью класса, так как он заключен в фигурные кавычки. Точкой входа в приложении C# является метод
static Main
, как требует компилятор. Необходимо отметить, что Java использует
main
в нижнем регистре. Подчеркнем также, что только один класс в приложении может иметь
Main
. Модификатор доступа
public
(обсуждаемый позднее) объявляет метод доступным потребителям кода вне класса, пакета или приложения, и также, как и компилятор, требует сделать метод видимым.

Аналогично в Java ключевое слове

static
позволяет вызывать метод сначала без создания экземпляра класса. Для метода
Main
можно выбрать в качестве возвращаемого типа значения
void
или
int
.
void
определяет, что метод не возвращает значение, a
int
определяет, что он возвращает целое значение.

Идентификаторы

Ключевые

слова, рассматриваемые в следующем разделе, не могут служить идентификаторами ни в Java, ни в C#, однако в C# можно использовать ключевые слова как идентификаторы, помещая перед ними символ
@
. Отметим, что это исключение имеет отношение только к ключевым словам и не нарушает другие правила. Оба языка являются зависимы ми от регистра символов, поэтому идентификаторы должны иметь согласованное использование заглавных букв. Хотя идентификаторы могут содержать буквы и цифры, первый символ идентификатора как в C#, так и в Java не должен быть цифрой. Java не допускает никаких символов кроме
$
, а C# вообще не допускает никаких символов:

int 7х; // неверно, цифра не может начинать идентификатор

int х7; // верно, цифра может быть частью идентификатора

int х; // верно

int х$; // неверно, никакие символы недопустимы

int @7k; // неверно, @ работает только для ключевых слов

int @class; // верно, @ перед ключевым словом позволяет использовать

// его в качестве идентификатора

Стандарты именования

Одним из основных различий, которое может быть не очевидно на первый взгляд, и которое не связано специально с языком C#, является синтаксис записи идентификаторов. Java практикует обозначения типа

camel
, означающее, что методы и идентификаторы используют меленькую букву для первой буквы имени и заглавную букву для первой буквы любого другого слова в имени. Общий синтаксис, которому следуют большинство программистов в Java, представлен ниже:

int id;

int idName;

int id_name; // также используется

final int CONSTANT_NAME; // широко распространен

int reallyLongId;

public class ClassName; // каждая первая буква заглавная

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{}

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