C#
Theory
- 1. C#. Overview
- 2. C#. Basic units. Elements of the language. Data types. Keywords. Literals
- 2.1. Keywords in C#. Reserved words. Context words
- 2.2. Categories of data in C#. Value types. Reference types
- 2.3. Base types in C#
- 2.4. Literals
- 2.5. Variables and constants. Initialization. Dynamical initialization. Implicitly typed variables
- 2.6. Type string
- 2.7. Data type char. Structure System.Char. Methods
- 2.8. The value of null. Nullable data types. Operations ?, ??
- 3. Operations
- 4. Control operators
- 4.1. The if statement. Full form. Shortened form. The if-else-if statement
- 4.2. The switch statement. Nested switch statements
- 4.3. The while loop operator. Examples
- 4.4. The for loop operator. Examples
- 4.5. The do-while loop. Examples
- 4.6. The foreach loop. Examples
- 4.7. Operators break, continue, goto
- 5. Arrays
- 5.1. One-dimensional arrays. Examples of solving problems on one-dimensional arrays. Arrays of structures. Arrays of classes. Arrays initialization
- 5.2. Multidimensional arrays. Stepped arrays. Initialization of multidimensional arrays
- 5.3. References to arrays. The Length property. Assignment of arrays
- 5.4. Implicitly typed arrays. The var keyword
- 5.5. Arrays of strings. Examples of solving the most common tasks
- 6. Structures. Enumerations
- 6.1. Structures. General concepts. Type of structure. Structural variable. Modifiers of access to structured variables. Examples of using the structures
- 6.2. Structures and methods. Initialization of structures. Constructors in structures. Properties in structures
- 6.3. Using arrays in structures. Arrays of structures. Nested structures. Copying structures
- 6.4. Enumerations
- 7. Indexers. Properties
- 8. Interfaces. The use of interfaces in C# programs
- 9. Classes
- 9.1. General concepts. Objects. Data and methods of the class
- 9.2. Special class functions
- 9.3. Dynamic memory allocation. Operator ‘new’. Memory allocation for value types, structures, enumerations, objects of classes. Memory allocation for arrays
- 9.4. Methods in classes
- 9.4.1. The concept of the method. Examples of methods in classes. Return from method. The return statement. Methods without parameters. The void keyword
- 9.4.2. Passing parameters to methods
- 1. Passing parameters to a method. Arguments and formal parameters. Examples. Passing a reference to object of class into a method
- 2. Modifiers ref and out. Examples. Differences between ref and out modifiers
- 3. Variable numbers of arguments in methods. Modifier params. Advantages. Examples of methods with variable number of arguments
- 4. Passing arrays to methods by value. Examples. Passing arrays of structures, classes, enumerations to methods. Passing two-dimensional arrays. Returning the array from method
- 5. Passing in the method one-dimensional and multidimensional arrays of class instances as ref and out parameters
- 6. Optional arguments. Advantages. Examples of using optional arguments. Ambiguity when using optional arguments
- 7. Named arguments. Advantages. Examples
- 9.4.3. Overloading of methods in classes. Examples. Advantages. Overloading of constructors
- 9.4.4. Recursion. Examples of recursive methods
- 9.4.5. Function Main(). Ways of declaration. Passing arguments to Main()
- 9.5. Encapsulation in classes. Keywords private, protected, public, internal
- 9.6. Static classes, methods, variables. Static constructors. Keyword static
- 9.7. Nested classes. Nested static classes. Declaring and using nested classes. Examples
- 10. Relationship between classes
- 11. Inheritance. Polymorphism. Abstract classes
- 11.1. Inheritance. Basic concepts. Advantages and disadvantages. General form. The simplest examples. Access modifier protected
- 11.2. Using constructors in classes for inheritance. The base keyword. Examples
- 11.3. Access to elements of a base class from an inherited class. Keywords base, new. Examples
- 11.4. Examples of creating class hierarchies using inheritance
- 11.5. Polymorphism
- 11.5.1. Features of using reference to the base class. Keywords as, is. Ways to call methods with the same name in inheritance hierarchies
- 11.5.2. An example of accessing methods and properties of inherited classes using a reference to the base class
- 11.5.3. Polymorphism. Late and early binding. Basic concepts. Examples. Passing a reference to a base class in a method. Keywords virtual, override, new
- 11.6. Abstract classes
- 11.7. Prohibition of inheritance. The keyword sealed. Features of use
- 12. Operators overloading
- 12.1. Operators overloading. General information. Overloading of unary operators –, !, ++, —
- 12.2. Overloading binary operators. Operator overloading +, –, *, /, %. Nesting arbitrary logic on overload
- 12.3. Overloading comparison operators ==, !=, <, >, <=, >=. Overloading boolean bitwise operators &, |, ^
- 12.4. Overloading the cast operator (). Overloading true–false operators. Overloading the logical operators &&, ||
- 14. Delegates
- 14.1. The concept of delegate. Declaration of delegate type. Using a delegate in the program. Group transformation of methods
- 14.2. Using delegates that reference the instance methods of the class. Example
- 14.3. Delegates. Group addressing. Creating a chain of methods calling
- 14.4. Anonymous functions. Anonymous methods. Returning the value. Passing parameters
- 14.5. Examples of passing arrays, structures, classes to an anonymous method
- 15. Lambda expressions
- 16. Events
- 17. Input/Output tools. Streams
- 17.1. Stream concept. Stream architecture in C#. Basic storage streams. Streams with decorators. Adapters streams
- 17.2. The Stream class
- 17.3. Streams with basic storages
- 17.5. Stream adapters
- 17.5.1. Classes StreamReader, StreamWriter
- 17.5.2. BinaryReader, BinaryWriter classes
- 18. Generics
- 18.1. Generics. Basic concepts. Generic classes and structures
- 18.2. Generic interfaces. Declaration syntax. Implementing generic interfaces in classes. Examples
- 18.3. Generic methods in classes. Declaration syntax. Methods call
- 18.4. Generic delegates
- 18.5. Boxing and unboxing. The need of using generics
- 18.6. Bounded types
- 18.7. Comparison of instances of generic types. IComparable<T> and IEquatable<T> interfaces
- 18.8. Applying generics to inheritance and polymorphism. Examples
- 18.9. Covariance. Contravariance
- 20. Reflection
- 20.1. Run-time type information (RTTI). Statements is, as. Examples
- 20.2. Reflection of types. Getting type metadata. The System.Reflection namespace. Class System.Type. Ways to get information about types. Operator typeof
- 20.3. Examples of obtaining information about methods, interfaces, classes, structures, enumerations, delegates, type fields, method parameters, type statistics
- 20.4. Dynamically loadable assemblies. Class Assembly. Methods Load() and LoadFrom()
- 20.5. Late binding. Method call. Example. Class System.Activator. Method Invoke()
- 20.6. Examples of using the reflection based on late binding
- 21. Attributes
- II. C# Library
- III. Controls (Windows Forms Application)
- IV. ADO .NET
- 1. General concepts
- 2. Connected mode
Practice
- Microsoft Visual Studio 2017 – 2019
- Console App (.NET Framework) template
- 001 – Example of creating a Unit-test in MS Visual Studio 2017
- 002 − An example of the development program, which is placed in different files. Implementation of inheritance in classes. MS Visual Studio 2019 tools for splitting a program into parts
- 003 – Development of a generic class that contains tools for implementing linear search
- 004 – Development of a generic class that implements the selection sorting algorithm
- 005 – Examples of using the FileStream class without using additional streams (decorators, adapters)
- Windows Forms App (.NET Framework)
- 001 − Creating a pentagonal form
- 004 – Example of developing an inherited form
- 005 – The Label component. Programmatic creation of the Label component. The MessageBox class. The DialogResult enum
- 006 – Component Button. Interaction between Label and Button components. The MouseMove event
- 007 – Events MouseUp, MouseDown. Programmatic formation of Label component on the form
- 009 – An example of creating a modeless form. Modal and modeless windows
- 016 − Create a document to print. Controls PrintDocument, PageSetupDialog, PrintDialog, PrintPreviewDialog
- 017 – Development of a program for demonstrating work for threads with execution. BackgroundWorker control. Sorting an array by insertion, bubble, selection algorithms
- Console App (.NET Framework) template
- Microsoft Visual Studio 2010
- Windows Forms Application template
- 001 – Windows Forms type Application Development in MS Visual Studio 2010.
- 002 – How to show MS Access database table in dataGridView.
- 003 – Connecting to MS Access Database in Visual Studio 2010.
- 004 – How to convert a MS Access database into MS SQL Server format.
- 005 – Example of event programming of button click in C#. Development of a program to determine the surface area of the sphere.
- 006 – Example of creating and calling a new form in C# application.
- 007 – An example of creating of Web-application in MS Visual Studio.
- 008 – An example of creating a menu in C#. Control menuStrip.
- 009 – C# (term paper). Development of Automation Program of work of Manager.
- 010 – C#. An example of demo application of copying files. Class FileStream.
- 011 – C# – An example of creating of two-dimensional matrix on the form. The analogue of TStringGrid component in Delphi
- 012 – C# – Developing the application of reading and writing text files. Classes StreamReader and StreamWriter.
- 013 – Developing the application of program of drawing the graph of the two variables function z = f(x,y)
- 014 – An example of demo application which manipulates data in the table of database MS SQL Server (SQLEXPRESS).
- 015 – Controlling the displaying of the current time in the program. Example of demonstration of Timer component.
- 016 – Example of the development of application, that demonstrates work with lists and associative arrays. Classes Dictionary, List, StreamReader.
- 017 – The implementation of the concepts of “inheritance” and “polymorphism” in the object-oriented programming through the creation of two classes. The interfaces ICloneable and IEquatable.
- 018 – Developing the program of demonstration of the queries at the LINQ language
- 019 – C# + Databases. An example of creating a report in application created using Windows Forms Application template for a database of the Microsoft SQL Server type, which is located in the *.mdf-file
- 020 – Term paper. Development of an environmental pollution monitoring program
- 021 – An example of solving a task that calculates the characteristics of geometric figures using delegates
- 022 – An example of using a delegate to call an anonymous method. The development of the program for finding the area of a triangle using the Heron’s formula
- 023 – An example of creating a report in application. The Report Viewer control. The Microsoft Access database
- 024 – Demonstration of the operation of the DataGridView control
- 025 – Course work. Development of a program for accounting of material assets. The Microsoft Access database
- 026 – Example of creating a Unit-test in Microsoft Visual Studio 2010
- 028 – Solving the problem of placing N queens on the board
- WPF Application template
- ASP .NET Web Application template
- Distributed applications
- Windows Forms Application template
Solving of tasks
- One-dimensional arrays. Loops for, while, do..while
- One-dimensional arrays. Combining the loops operators for, while, do…while with the condition operator if
- Recursion. Examples of tasks solving
- An example of solving problems using static data and method in a class
- Text files. The solution of tasks on the modification of text files. Classes File, StreamReader, StreamWriter
⇑