Book Image

C# 6 and .NET Core 1.0

Book Image

C# 6 and .NET Core 1.0

Overview of this book

With the release of .NET Core 1.0, you can now create applications for Mac OS X and Linux, as well as Windows, using the development tools you know and love. C# 6 and .NET Core 1.0 has been divided into three high-impact sections to help start putting these new features to work. First, we'll run you through the basics of C#, as well as object-orient programming, before taking a quick tour through the latest features of C# 6 such as string interpolation for easier variable value output, exception filtering, and how to perform static class imports. We'll also cover both the full-feature, mature .NET Framework and the new, cross-platform .NET Core. After quickly taking you through C# and how .NET works, we'll dive into the internals of the .NET class libraries, covering topics such as performance, monitoring, debugging, internationalization, serialization, and encryption. We'll look at Entity Framework Core 1.0 and how to develop Code-First entity data models, as well as how to use LINQ to query and manipulate that data. The final section will demonstrate the major types of applications that you can build and deploy cross-device and cross-platform. In this section, we'll cover Universal Windows Platform (UWP) apps, web applications, and web services. Lastly, we'll help you build a complete application that can be hosted on all of today's most popular platforms, including Linux and Docker. By the end of the book, you'll be armed with all the knowledge you need to build modern, cross-platform applications using C# and .NET Core.
Table of Contents (25 chapters)
C# 6 and .NET Core 1.0
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Chapter 6 – Building Your Own Types with Object-Oriented Programming


  1. What are the four access modifiers and what do they do?

    • private: This modifier makes a member only visible inside the class

    • internal: This modifier makes a member only visible inside the class or within the same assembly

    • protected: This modifier makes a member only visible inside the class or derived classes

    • public: This modifier makes a member visible everywhere

  2. What is the difference between the static, const, and readonly keywords?

    • static: This keyword makes the member shared by all instances and accessed through the type

    • const: This keyword makes a field a fixed literal value that should never change

    • readonly: This keyword makes a field that can only be assigned at runtime using a constructor

  3. How many parameters can a method have?

    A method with 16383 parameters can be compiled, ran, and called. Any more than that and an unstated exception is thrown at runtime. IL has predefined opcodes to load up to four parameters and a special opcode to load up to 16-bits (65,536) parameters. A best practice is to limit your methods to three or four parameters. You can combine multiple parameters into a new class to encapsulate them into a single parameter. You can find more information on this at http://stackoverflow.com/questions/12658883/what-is-the-maximum-number-of-parameters-that-a-c-sharp-method-can-be-defined-as.

  4. What does a constructor do?

    A constructor allocates memory and initializes field values.

  5. Why do you need to apply the [Flags] attribute to an enum type when you want to store combined values?

    If you don't apply the [Flags] attribute to an enum type when you want to store combined values, then a stored enum value that is a combination will return as the stored integer value instead of a comma-separated list of text values.

  6. What is a delegate?

    A delegate is a type-safe method reference. It can be used to execute any method with a matching signature.

  7. What is an event?

    An event is a field that is a delegate having the event keyword applied. The keyword ensures that only += and -= are used; this safely combines multiple delegates without replacing any existing event handlers.

  8. Why is the partial keyword useful?

    You can use the partial keyword to split the definition of a type over multiple files.