Methods Writing and using methods, overloads, ref, out SoftUni Team Technical Trainers Software University

Slides:



Advertisements
Similar presentations
Subroutines in Computer Programming Svetlin Nakov Telerik Corporation
Advertisements

 Dimitar Ivanov Introduction to programming with microcontrollers.
C# Advanced Topics Methods, Classes and Objects SoftUni Team Technical Trainers Software University
AngularJS Routing Routes, Route Parameters, Templates, Location, Navigation SoftUni Team Technical Trainers Software University
AngularJS Services Built-in and Custom Services SoftUni Team Technical Trainers Software University
Subroutines in Computer Programming Svetlin Nakov Telerik Corporation
Reusable parts of Code Doncho Minkov Telerik Software Academy academy.telerik.com Technical Trainer
Software University Curriculum, Courses, Exams, Jobs SoftUni Team Technical Trainers Software University
Fundamentals SoftUni Welcome to Software University SoftUni Team Technical Trainers Software University
Project Tracking Tools Trello, Asana, Basecamp, GitHub Issue Tracker, TRAC SoftUni Team Technical Trainers Software University
AngularJS Directives Defining Custom Directives SoftUni Team Technical Trainers Software University
Software Testing Lifecycle Exit Criteria Evaluation, Continuous Integration Ivan Yonkov Technical Trainer Software University.
Teamwork and Personal Skills Course Introduction Software University SoftUni Team Technical Trainers.
Design Patterns: Structural Design Patterns
High-Quality Programming Code Code Correctness, Readability, Maintainability, Testability, Etc. SoftUni Team Technical Trainers Software University
Conditional Statements Implementing Control-Flow Logic in C# SoftUni Team Technical Trainers Software University
Consuming REST Services from C# SoftUni Team Technical Trainers Software University
Loops Repeating Code Multiple Times SoftUni Team Technical Trainers Software University
Start Your Own Blog Angel Georgiev Part-time Trainer angeru.softuni-friends.org Software University The Culture of Knowledge Sharing.
Entity Framework Performance SoftUni Team Technical Trainers Software University
Svetlin Nakov Technical Trainer Software University
Build Processes and Continuous Integration Automating Build Processes Software University Technical Trainers SoftUni Team.
Processing Redis with.NET How to Operate with Redis Databases SoftUni Team Technical Trainers Software University
Multidimensional Arrays, Sets, Dictionaries Processing Matrices, Multidimensional Arrays, Dictionaries, Sets SoftUni Team Technical Trainers Software University.
Project Tracking Tools Trello, Asana, Basecamp, GitHub Issue Tracker, TRAC Angel Georgiev Part-time Trainer Software University
Test-Driven Development Learn the "Test First" Approach to Coding SoftUni Team Technical Trainers Software University
Defining Classes Classes, Fields, Constructors, Methods, Properties SoftUni Team Technical Trainers Software University
Functions Reusable Parts of Code SoftUni Team Technical Trainers Software University
Static Members and Namespaces Static Members, Indexers, Operators, Namespaces SoftUni Team Technical Trainers Software University
CV Structure, Content, Layout, Formatting, Best Practices SoftUni Team Technical Trainers Software University
AMD and RequireJS Splitting JavaScript Code into Dependent Modules Software University Technical Trainers SoftUni Team.
Asynchronous Web Services Writing Asynchronous Web Services SoftUni Team Technical Trainers Software University
Jekyll Static Site Generator Template-Based Site Generation Svetlin Nakov Technical Trainer Software University
Code Formatting Correctly Formatting the Source Code Svetlin Nakov Technical Trainer Software University
Web Development Tools Tools for Front-End Developers Writing HTML and CSS Code SoftUni Team Technical Trainers Software University
Responsive Design Design that Adapts to Different Devices SoftUni Team Technical Trainers Software University
Exam Preparation Algorithms Course: Sample Exam SoftUni Team Technical Trainers Software University
Console Input / Output Reading and Writing to the Console SoftUni Team Technical Trainers Software University
Tables, Rows, Columns, Cells, Header, Footer, Colspan, Rowspan
High-Quality Programming Code Code Correctness, Readability, Maintainability Svetlin Nakov Technical Trainer Software University
CSS Transitions and Animations Animated HTML Elements SoftUni Team Technical Trainers Software University
Design Patterns: Structural Design Patterns General and reusable solutions to common problems in software design Software University
Reusable parts of Code Doncho Minkov Telerik Software Academy academy.telerik.com Technical Trainer
Events Event Handling in JavaScript SoftUni Team Technical Trainers Software University
Reflection Programming under the hood SoftUni Team Technical Trainers Software University
Mocking with Moq Tools for Easier Unit Testing SoftUni Team Technical Trainers Software University
Code Formatting Formatting the Source Code Correctly SoftUni Team Technical Trainers Software University
Mocking Unit Testing Methods with External Dependencies SoftUni Team Technical Trainers Software University
Mocking with Moq Mocking tools for easier unit testing Svetlin Nakov Technical Trainer Software University
Test-Driven Development Learn the "Test First" Approach to Coding Svetlin Nakov Technical Trainer Software University
Programming for Beginners Course Introduction SoftUni Team Technical Trainers Software University
Sets, Dictionaries SoftUni Team Technical Trainers Software University
Creating Content Defining Topic, Creating Technical Training Materials SoftUni Team Technical Trainers Software University
Programming Fundamentals Course Introduction SoftUni Team Technical Trainers Software University
Doctrine The PHP ORM SoftUni Team Technical Trainers Software University
Team Work and Personal Skills Course Introduction Angel Georgiev Part-time Trainer Software University
Creating Content Defining Topic, Creating Technical Training Materials SoftUni Team Technical Trainers Software University
First Steps in PHP Creating Very Simple PHP Scripts SoftUni Team Technical Trainers Software University
Inheritance Class Hierarchies SoftUni Team Technical Trainers Software University
Static Members Static Variables & Methods SoftUni Team Technical Trainers Software University
Stacks and Queues Processing Sequences of Elements SoftUni Team Technical Trainers Software University
Generics SoftUni Team Technical Trainers Software University
Asynchronous Programming Writing Asynchronous Code in Java SoftUni Team Technical Trainers Software University
High-Quality Programming Code Code Correctness, Readability, Maintainability, Testability, Etc. SoftUni Team Technical Trainers Software University
C# Basic Syntax, Visual Studio, Console Input / Output
C# Basic Syntax, Visual Studio, Console Input / Output
Mocking tools for easier unit testing
Repeating Code Multiple Times
Extending functionality using Collections
Subroutines in Computer Programming
Presentation transcript:

Methods Writing and using methods, overloads, ref, out SoftUni Team Technical Trainers Software University

Table of Contents 1.Using Methods  What is a Method? Why Use Methods?  Declaring and Creating Methods  Calling Methods 2.Methods with Parameters  Passing Parameters  Returning Values 3.Best Practices 2

Methods Declaring and Invoking Methods

 A method is a named piece of code  Each method has: Declaring Methods static void PrintHyphens(int count) { Console.WriteLine( Console.WriteLine( new string('-', count)); new string('-', count));} Name Return type Parameters Body

5  Methods can be invoked (called) by their name Invoking Methods static void PrintHyphens(int count) { Console.WriteLine(new string('-', count)); Console.WriteLine(new string('-', count));} static void Main() { for (int i = 1; i <= 10; i++) for (int i = 1; i <= 10; i++) { PrintHyphens(i); PrintHyphens(i); }} Method body always surrounded by { } Method called by name

Methods Live Demo

7  Method parameters can be of any type  Separated by comma Method Parameters static void PrintNumbers(int start, int end) { for (int i = start; i <= end; i++) for (int i = start; i <= end; i++) { Console.Write("{0} ", i); Console.Write("{0} ", i); }} static void Main() { PrintNumbers(5, 10); PrintNumbers(5, 10);} Declares the use of int start and int end Passed concrete values when called

Method Parameters – Example 8 static void PrintSign(int number) { if (number > 0) if (number > 0) Console.WriteLine("The number {0} is positive.", number); Console.WriteLine("The number {0} is positive.", number); else if (number < 0) else if (number < 0) Console.WriteLine("The number {0} is negative.", number); Console.WriteLine("The number {0} is negative.", number); else else Console.WriteLine("The number {0} is zero.", number); Console.WriteLine("The number {0} is zero.", number);} static void Main() { PrintSign(5); PrintSign(5); PrintSign(-3); PrintSign(-3); PrintSign(0); PrintSign(0);}

 C# 4.0 supports optional parameters with default values:  The above method can be called in several ways: Optional Parameters static void PrintNumbers(int start = 0, int end = 100) { for (int i = start; i <= end; i++) for (int i = start; i <= end; i++) { Console.Write("{0} ", i); Console.Write("{0} ", i); }} PrintNumbers(5, 10); PrintNumbers(15);PrintNumbers(); PrintNumbers(end: 40, start: 35);

Method Parameters Live Demo

Exercises in Class

Printing Triangle  Create a method for printing triangles as shown below: n=5  n=6 

Printing Triangle Live Demo

Returning Values From Methods

15  Type void - does not return a value (only executes code)  Other types - return values, based on the return type of the method Method Return Types static void AddOne(int n) { n += 1; n += 1; Console.WriteLine(n); Console.WriteLine(n);} static int PlusOne(int n) { return n + 1; return n + 1;}

16 Methods with Parameters and Return Value static double CalcTriangleArea(double width, double height) { return width * height / 2; return width * height / 2;} static void Main() { Console.Write("Enter triangle width: "); Console.Write("Enter triangle width: "); double width = double.Parse(Console.ReadLine()); double width = double.Parse(Console.ReadLine()); Console.Write("Enter triangle height: "); Console.Write("Enter triangle height: "); double height = double.Parse(Console.ReadLine()); double height = double.Parse(Console.ReadLine()); Console.WriteLine(CalcTriangleArea(width, height)); Console.WriteLine(CalcTriangleArea(width, height));}

17 Power Method static double Power(double number, int power) { double result = 1; double result = 1; for (int i = 0; i < power; i++) for (int i = 0; i < power; i++) { result *= number; result *= number; } return result; return result;} static void Main() { double powerTwo = Power(5, 2); double powerTwo = Power(5, 2); Console.WriteLine(powerTwo); Console.WriteLine(powerTwo); double powerThree = Power(7.45, 3); double powerThree = Power(7.45, 3); Console.WriteLine(powerThree); Console.WriteLine(powerThree);}

18  Convert temperature from Fahrenheit to Celsius: Temperature Conversion – Example static double FahrenheitToCelsius(double degrees) { double celsius = (degrees - 32) * 5 / 9; double celsius = (degrees - 32) * 5 / 9; return celsius; return celsius;} static void Main() { Console.Write("Temperature in Fahrenheit: "); Console.Write("Temperature in Fahrenheit: "); double t = Double.Parse(Console.ReadLine()); double t = Double.Parse(Console.ReadLine()); t = FahrenheitToCelsius(t); t = FahrenheitToCelsius(t); Console.Write("Temperature in Celsius: {0}", t); Console.Write("Temperature in Celsius: {0}", t);}

Returning Values From Methods Live Demo

Overloading Methods Multiple Methods with the Same Name

21  Method Overloading  Use the same method name for multiple methods with different signature (return type and parameters) Overloading Methods static void Print(string text) { Console.WriteLine(text); Console.WriteLine(text);} static void Print(int number) { Console.WriteLine(number); Console.WriteLine(number);} static void Print(string text, int number) { Console.WriteLine(text + ' ' + number); Console.WriteLine(text + ' ' + number);}

Why Use Methods?  More manageable programming  Splits large problems into small pieces  Better organization of the program  Improves code readability  Improves code understandability  Avoiding repeating code  Improves code maintainability  Code reusability  Using existing methods several times 22

23  Each method should perform a single, well-defined task  Method's name should describe that task in a clear and non- ambiguous way  Good examples: CalculatePrice, ReadName  Bad examples: f, g1, Process  In C# methods should start with a capital letter (PascalCase)  Avoid methods longer than one screen  Split them to several shorter methods Methods – Best Practices

24  Break large programs into simple methods that solve small sub-problems  Methods consist of declaration and body  Methods are invoked by their name  Methods can accept parameters  Parameters take actual values when calling a method  Methods can return a value or nothing (void) Summary

? ? ? ? ? ? ? ? ? Fundamentals SoftUni

License  This course (slides, examples, demos, videos, homework, etc.) is licensed under the "Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International" licenseCreative Commons Attribution- NonCommercial-ShareAlike 4.0 International  Attribution: this work may contain portions from  "C# Fundamentals – Part 1" course by Telerik Academy under CC-BY-NC-SA licenseCC-BY-NC-SA  "C# Fundamentals – Part 2" course by Telerik Academy under CC-BY-NC-SA licenseCC-BY-NC-SA 26

Free Software University  Software University Foundation – softuni.orgsoftuni.org  Software University – High-Quality Education, Profession and Job for Software Developers  softuni.bg softuni.bg  Software Facebook  facebook.com/SoftwareUniversity facebook.com/SoftwareUniversity  Software YouTube  youtube.com/SoftwareUniversity youtube.com/SoftwareUniversity  Software University Forums – forum.softuni.bgforum.softuni.bg