Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Строковый тип данных string.

Читайте также:
  1. Ethernet (от англ. ether «эфир») — пакетная технология передачи данных преимущественно локальных компьютерных сетей.
  2. I ЭТАП – ОБСЛЕДОВАНИЕ (сбор данных).
  3. II. Из данных слов выберите то, которое закончит предложение.
  4. L3: Реферативная база данных обзоров по эффективности медицинских вмешательств
  5. L4: Кокрановская база данных по методологии обзоров
  6. Автоматизированные информационные ресурсы России, оценка их состояния. Фактографические базы социальных данных
  7. Агрегаты данных
  8. Алгоритмы обработки данных. Основные алгоритмические конструкции.
  9. Алгоритмы сжатия данных неизвестного формата
  10. Анализ данных в государственном управлении.

Тип данных string — это последовательность, содержащая ни одного или любое число знаков Юникода. В платформе.NET Framework string является псевдонимом для String.

Несмотря на то, что тип string является ссылочным типом, операторы равенства (== и !=) определены для сравнения значений объектов типа string, а не ссылок. Это упрощает проверку равенства строк. Пример.

string a = "hello";string b = "h";// Append to contents of 'b'b += "ello";Console.WriteLine(a == b);Console.WriteLine((object)a == (object)b);

В этом примере отображается "True", а затем "False", поскольку содержимое строк одинаково, но a и b не ссылаются на один и тот же экземпляр строки.

Оператор + служит для объединения строк.

string a = "good " + "morning";

В данном примере создается строковый объект, содержащий текст "good morning".

Строки являются неизменяемыми: содержимое строкового объекта невозможно изменить после создания объекта, хотя из-за синтаксиса изменения кажутся возможными. Например, при написании этого кода компилятор на самом деле создает новый строковый объект для новой последовательности знаков, а переменная b по-прежнему содержит "h".

string b = "h";b += "ello";

Оператор [] служит для доступа только для чтения к отдельным знакам объекта string.

string str = "test";char x = str[2]; // x = 's';

Строковые литералы имеют тип string и могут быть написаны в двух формах: в кавычках и в кавычках с @. Строковые литералы в кавычках заключены в двойные кавычки (").

"good morning" // a string literal

Строковые литералы могут содержать любые символьные литералы. Escape-последовательности также поддерживаются.

string a = "\\\u0066\n";

Эта строка содержит обратную косую черту, букву f и знак новой строки.


16) Методы: назначение, определение, вызов. Метод представляет собой блок кода, содержащий набор инструкций. Программа инициирует выполнение операторов, вызывая метод и задавая необходимые аргументы метода. В C# все инструкции выполняются в контексте метода. Метод Main является точкой входа для каждого приложения C#, и вызывается он средой CLR при запуске программы.

Подписи метода

Методы объявляются в классе или в структуре путем указания уровня доступа, например public или private, необязательных модификаторов, например abstract или sealed, возвращаемого значения, имени метода и списка параметров этого метода. Все вместе эти элементы образуют подпись метода.

Параметры заключаются в круглые скобки и разделяются запятыми. Пустые скобки указывают на то, что у метода нет параметров. Следующий класс содержит три метода.

abstract class Motorcycle{ // Anyone can call this. public void StartEngine() {/* Method statements here */ } // Only derived classes can call this. protected void AddGas(int gallons) { /* Method statements here */ } // Derived classes can override the base class implementation. public virtual int Drive(int miles, int speed) { /* Method statements here */ return 1; } // Derived classes must implement this. public abstract double GetTopSpeed(); }

Доступ к методам

Вызов метода объекта очень похож на обращение к полю. После имени объекта ставится точка, затем имя метода и скобки. В скобках перечисляются аргументы, разделенные запятыми. Таким образом, методы класса Motorcycle можно вызывать так, как показано в следующем примере.

class TestMotorcycle: Motorcycle{ public override double GetTopSpeed() { return 108.4; } static void Main() { TestMotorcycle moto = new TestMotorcycle(); moto.StartEngine(); moto.AddGas(15); moto.Drive(5, 20); double speed = moto.GetTopSpeed(); Console.WriteLine("My top speed is {0}", speed); }}

Параметры и аргументы методов

Определение метода задает имена и типы любых необходимых параметров. Когда код вызова вызывает метод, он предоставляет конкретные значения, называемые аргументами, для каждого параметра. Аргументы должны быть совместимыми с типом параметра, но имя параметра (если таковое имеется), используемое в коде вызова, не должно быть таким же, как параметр с именем, определенным в методе. Пример:

public void Caller(){ int numA = 4; // Call with an int variable. int productA = Square(numA); int numB = 32; // Call with another int variable. int productB = Square(numB); // Call with an integer literal. int productC = Square(12); // Call with an expression that evaulates to int. productC = Square(productA * 3);} int Square(int i){ // Store input argument in a local variable. int input = i; return input * input;}

Передача по ссылке и передача по значению

По умолчанию при передаче методу типа значения передается копия объекта, а не сам объект. Поэтому изменения в аргументе не оказывают влияния на исходную копию в вызывающем методе. Тип значения по ссылке можно передать с помощью ключевого слова ref. Дополнительные сведения см. в разделе Передача параметров типа значения (руководство по программированию в C#). Полный список встроенных типов значений см. в разделе Таблица типов значений (Справочник по C#).

Ссылочные типы передаются по ссылке. При передаче методу объекта, имеющего ссылочный тип, ссылка указывает на исходный объект, а не на копию. Изменения объекта, осуществляемые с помощью этой ссылки, будут доступны и в вызывающем методе. В следующем примере ключевое слово class указывает на то, что создается объект ссылочного типа.

public class SampleRefType{ public int value;}

Теперь при передаче методу объекта этого типа объект будет передаваться по ссылке. Пример.

public static void TestRefType(){ SampleRefType rt = new SampleRefType(); rt.value = 44; ModifyObject(rt); Console.WriteLine(rt.value);}static void ModifyObject(SampleRefType obj){ obj.value = 33;}

В этом примере выполняются те же действия, что и в предыдущем примере. Но поскольку используется ссылочный тип, изменения в методе ModifyObject относятся к объекту, созданному в методе created in the TestRefType. Поэтому в методе TestRefType на экран будет выведено значение 33.

Дополнительные сведения см. в разделах Передача параметров ссылочного типа (руководство по программированию в C#) и Ссылочные типы (Справочник по C#).




Дата добавления: 2015-02-16; просмотров: 14 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав