Intermediate C# Programming 2 day training course from £590.00 plus VAT
Classroom - per delegate | £695.00 plus VAT £834.00 inc VAT |
In person at one of our UK locations, max 10 delegates |
In Person one on one course | £1,190.00 plus VAT £1,428.00 inc VAT |
In person at one of our UK locations, no other delegates - click here for details |
Closed Courses | £1,900.00 plus VAT £2,280.00 inc VAT |
In person at a location of your choosing, max 10 delegates (contact us for prices over 10 delegates) - click here for details |
Remote live public course | £590.00 plus VAT £708.00 inc VAT |
Remotely accessed over the internet, max 6 delegates - click here for details |
Remote live one on one course | £790.00 plus VAT £948.00 inc VAT |
Remotely accessed over the internet, no other delegates - click here for details |
Synopsis
Take your C# skills to the next level with this popular course bringing you right up to date with the latest C# features. This follow-on to our popular Programming with C# course will introduce those with some C# experience to more advanced concepts such as generics, reflection, interfaces, indexers, and how to query collections with LINQ. It will also show you how to read/write data to/from a database using ADO.NET, or to/from XML. It will also cover Lists, lambda expressions, anonymous types, extension methods and more.Duration
2 daysCost
See options at top of the page
Prerequisites
Delegates should have a working knowledge of C#, to the level provided by our Programming with C# course. They certainly need to understand concepts such as classes, objects, methods and properties. If in doubt please contact us before booking.Detailed course contents
Reflection and Custom Attributes
- What is reflection?
- The Type type
- Getting the Type of a class or object
- Using reflection to find out if a class is abstract or sealed
- Viewing a type’s properties and methods
- Other uses of reflection
- Custom attributes
- Uses of custom attributes
- Creating custom attributes
- Adding custom attributes to a class
- Viewing the custom attributes of a class
- Adding attribute properties
- Using an attribute with properties
- Adding attribute constructors
- Viewing more details about the attributes
Indexers
- What are Indexers?
- Declaring an Indexer
- Using indexers
- Overloaded Indexers
Generics
- What is generics?
- Uses for generics
- Flexibility using generics
- Substitution parameter naming convention
- Type safety with generics
- Using generics with a class
Lists
- Lists
- Creating a List
- foreach loop with a List
- Other supported methods and properties
Abstract behaviour in classes
- Preventing instantiation from a class
- Creating an abstract class
- Members of an abstract class
- Concrete and abstract methods
Interfaces
- What is an interface?
- Interface rules
- Inheriting from an interface
- Creating an interface
- Properties of an interface
- Methods in an interface
- Basing a class on an interface
- Basing an interface on an interface
- Multiple inheritance
- Interfaces as variable or parameter data types
- The IComparable and IComparable
interfaces
Lambda Expressions
- Lambda Expressions
- Replacing a method with a lambda expression
Object Initializers
- C# Object Initializers
- C# Object Initializer syntax
- C# Object Initializer without constructor
- C# Object Initializer with constructor
Partial classes
- Partial classes
Implicitly typed local variables with var
- Implicitly typed local variables
- var examples
Extension methods
- Extending a class without access to its code
- Using static behaviour
- Creating an extension method
Delegates
- What is a Delegate?
- Creating a Delegate
- Referencing a Method
- Using a delegate
- Multicasting
- Creating a Multicasting Delegate
- Scope
- Removing Method References
- Removing Method References - Multicasting
LINQ
- LINQ (Language INtegrated Query)
- LINQ queries
- How LINQ works
- The query variable
- LINQ query syntax
- The from clause
- The select clause
- Returning a customised data type
- The where clause
- The orderby clause
- The group clause
- The Single method
- Aggregate functions
- Aggregate functions where no arguments are required
- Aggregate functions where the object cannot be directly aggregated
LINQ extension methods
- Extension Methods in System.Linq
- Passing lambda expressions
- Where and OrderBy
- Combining methods
XML
- XML and .NET
- The System.Xml namespace
- Using XmlReader to read XML
- Using XmlWriter to create XML
- Using the DOM
- Using XmlDocument
- Using XmlDocument to create a new document
- Using XmlDocument to create a document from a file
- The GetElementsByTagName method
- The SelectNodes method
- Modifying an XML document
- LINQ and XML
- Creating XML with Linq
- Using LINQ to query XML
- Querying a sub-element
- Serialising objects into XML
- Default XML layout
- Customising the default XML layout
- Modifying XML output without access to the class code
- Changing the name of the root element
- Deserialising XML to an object
- Class name different from the name of the root element
Connected data access with ADO.NET
- What is ADO.NET?
- ADO.NET namespaces
- High level data access process
- Creating a connection object
- Storing connection strings in config files
- Command objects
- CommandType and CommandText
- Command object methods
- Disposing of resources
- The using statement
- ExecuteNonQuery
- ExecuteScalar
- ExecuteReader
- Data readers
- Using a Data Reader
- Cleaning up after data readers
- Command parameters
- Adding parameters to commands
- A command with parameters
ADO.NET disconnected data access
- The DataTable Object
- The DataColumn object
- The DataRow object
- Manually creating and filling a datatable
- The Rows collection
- The Columns collection
- The DataSet object
- Data adapters
- Data adapter properties
- Working with data locally
- Filling a DataTable with a data adapter
Error handling
- Review of basic exception handling (try .. catch.. finally)
- The Exception Class
- Catching the Exception instance
- The Exception Message
- More error handling
- Basic Exception Handling
- try .. catch
- finally
- The Exception Class
- Catching the Exception instance
- The Exception Message
- Derived Exception Classes
- FormatException
- OverflowException
- IndexOutOfRangeException
- DivideByZeroException
- Catching Multiple Exceptions
- Exception Nesting
- Throwing an Exception
- Passing a message to the Exception class
- Custom Exceptions
- Defining Custom Exceptions
- Throwing custom Exceptions
- Custom Exception with constructor
- Throwing a custom exception whose constructor takes arguments
Availability
-
Online
13-14 May 2024
Click on a date to book it
Can't see a suitable date?
Click here to register your interest in this course and we will keep you informed when any new dates are added.
FAQs
-
What are the course times?
-
Courses start at 9:30am start on the first day of your course. Subsequent days will usually start 30 minutes earlier but check with your instructor. The course will end by 4:30am each day.
-
-
Do I need to bring anything?
-
No, everything is provided, you only have to bring yourself.
-
-
How can I pay?
-
Once you have booked you will receive a confirmation email, and shortly after that, an invoice. For in-person public and private courses the invoice is payable within 30 days, for online courses payment is required 7 days before the start of the course. Payment can be made by bank transfer (BACS etc), cheque or card.
-
-
Is there a dress code?
-
No, there is no dress code for any of our courses.
-
-
Are refreshments provided?
-
At our in-person courses, mid-morning and mid-afternoon refreshments will be provided. Lunch is not provided but all our venues are in central locations.
-
-
What is the cancellation policy?
-
Cancellations received within 7 days of making your booking or more than 21 days before the scheduled start date will not incur any charge. For cancellations received between 7 and 21 days before the scheduled start date a 50 percent charge will apply. For cancellations received less than 7 days before the scheduled start date a 100 percent charge will apply. For online courses where you have already been sent course materials, any refund is conditional on the return of the materials at your own expense.
-