Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Топ:
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2019-08-07 | 181 |
5.00
из
|
Заказать работу |
|
|
Удаление файла
string path = @"C:\apache\hta.txt";FileInfo fileInf = new FileInfo(path);if (fileInf.Exists){ fileInf.Delete(); // альтернатива с помощью класса File // File.Delete(path);}Копирование файла
string path = @"C:\apache\hta.txt";FileInfo fileInf = new FileInfo(path);if (fileInf.Exists){ fileInf.MoveTo(newPath); // альтернатива с помощью класса File // File.Move(path, newPath);}Метод CopyTo класса FileInfo принимает два параметра: путь, по которому файл будет копироваться, и булевое значение, которое указывает, надо ли при копировании перезаписывать файл (если true, как в случае выше, файл при копировании перезаписывается). Если же в качестве последнего параметра передать значение false, то если такой файл уже существует, приложение выдаст ошибку.
Метод Copy класса File принимает три параметра: путь к исходному файлу, путь, по которому файл будет копироваться, и булевое значение, указывающее, будет ли файл перезаписываться.
12.Составление программы с использованием подпрограмм.
Следует отметить, что официальная терминология C# делает различие между функциями и методами. Согласно этой терминологии, понятие "функция-член" включает не только методы, но также другие члены, не являющиеся данными, класса или структуры. Сюда входят индексаторы, операции, конструкторы, деструкторы, а также — возможно, несколько неожиданно — свойства. Они контрастируют с данными-членами: полями, константами и событиями.
Объявление методов
В C# определение метода состоит из любых модификаторов (таких как спецификация доступности), типа возвращаемого значения, за которым следует имя метода, затем список аргументов в круглых скобках и далее - тело метода в фигурных скобках:
|
1. [модификаторы] тип_возврата ИмяМетода([параметры])
2. {
3. // Тело метода
4. }
Каждый параметр состоит из имени типа параметра и имени, по которому к нему можно обратиться в теле метода. Вдобавок, если метод возвращает значение, то для указания точки выхода должен использоваться оператор возврата return вместе с возвращаемым значением.
Если метод не возвращает ничего, то в качестве типа возврата указывается void, поскольку вообще опустить тип возврата невозможно. Если же он не принимает аргументов, то все равно после имени метода должны присутствовать пустые круглые скобки. При этом включать в тело метода оператор возврата не обязательно — метод возвращает управление автоматически по достижении закрывающей фигурной скобки.
Возврат из метода и возврат значения
В целом, возврат из метода может произойти при двух условиях. Во-первых, когда встречается фигурная скобка, закрывающая тело метода. И во-вторых, когда выполняется оператор return. Имеются две формы оператора return: одна — для методов типа void (возврат из метода), т.е. тех методов, которые не возвращают значения, а другая — для методов, возвращающих конкретные значения (возврат значения).
Давайте рассмотрим пример:
using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace ConsoleApplication1{ class MyMathOperation { public double r; public string s; // Возвращает площадь круга public double sqrCircle() { return Math.PI * r * r; } // Возвращает длину окружности public double longCircle() { return 2 * Math.PI * r; } public void writeResult() { Console.WriteLine("Вычислить площадь или длину? s/l:"); s = Console.ReadLine(); s = s.ToLower(); if (s == "s") { Console.WriteLine("Площадь круга равна {0:#.###}",sqrCircle()); return; } else if (s == "l") { Console.WriteLine("Длина окружности равна {0:#.##}",longCircle()); return; } else { Console.WriteLine("Вы ввели не тот символ"); } } } class Program { static void Main(string[] args) { Console.WriteLine("Введите радиус: "); string radius = Console.ReadLine(); MyMathOperation newOperation = new MyMathOperation { r = double.Parse(radius) }; newOperation.writeResult(); Console.ReadLine(); } }}
|
Результат:
Использование параметров
При вызове метода ему можно передать одно или несколько значений. Значение, передаваемое методу, называется аргументом. А переменная, получающая аргумент, называется формальным параметром, или просто параметром. Параметры объявляются в скобках после имени метода. Синтаксис объявления параметров такой же, как и у переменных. А областью действия параметров является тело метода. За исключением особых случаев передачи аргументов методу, параметры действуют так же, как и любые другие переменные.
В общем случае параметры могут передаваться методу либо по значению, либо по ссылке. Когда переменная передается по ссылке, вызываемый метод получает саму переменную, поэтому любые изменения, которым она подвергнется внутри метода, останутся в силе после его завершения. Но если переменная передается по значению, вызываемый метод получает копию этой переменной, а это значит, что все изменения в ней по завершении метода будут утеряны. Для сложных типов данных передача по ссылке более эффективна из-за большого объема данных, который приходится копировать при передаче по значению.
Давайте рассмотрим пример:
using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace ConsoleApplication1{ class myClass { public void someMethod(double[] myArr, int i) { myArr[0] = 12.0; i = 12; } } class Program { static void Main(string[] args) { double[] arr1 = { 0, 1.5, 3.9, 5.1 }; int i = 0; Console.WriteLine("Массив arr1 до вызова метода: "); foreach (double d in arr1) Console.Write("{0}\t",d); Console.WriteLine("\nПеременная i = {0}\n",i); Console.WriteLine("Вызов метода someMethod..."); myClass ss = new myClass(); ss.someMethod(arr1,i); Console.WriteLine("Массив arr1 после вызова метода:"); foreach (double d in arr1) Console.Write("{0}\t",d); Console.WriteLine("\nПеременная i = {0}\n",i); Console.ReadLine(); } } }
Результат:
Обратите внимание, что значение i осталось неизменным, но измененные значения в myArr также изменились в исходном массиве arr1, так как массивы являются ссылочными типами.
Поведение строк также отличается. Дело в том, что строки являются неизменными (изменение значения строки приводит к созданию совершенно новой строки), поэтому строки не демонстрируют поведение, характерное для ссылочных типов. Любые изменения, проведенные в строке внутри метода, не влияют на исходную строку.
|
|
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!