C# Succinctly

Total Page:16

File Type:pdf, Size:1020Kb

C# Succinctly 1 By Joe Mayo Foreword by Daniel Jebaraj 2 Copyright © 2015 by Syncfusion, Inc. 2501 Aerial Center Parkway Suite 200 Morrisville, NC 27560 USA All rights reserved. I mportant licensing information. Please read. This book is available for free download from www.syncfusion.com on completion of a registration form. If you obtained this book from any other source, please register and download a free copy from www.syncfusion.com. This book is licensed for reading only if obtained from www.syncfusion.com. This book is licensed strictly for personal or educational use. Redistribution in any form is prohibited. The authors and copyright holders provide absolutely no warranty for any information provided. The authors and copyright holders shall not be liable for any claim, damages, or any other liability arising from, out of, or in connection with the information in this book. Please do not use this book if the listed terms are unacceptable. Use shall constitute acceptance of the terms listed. SYNCFUSION, SUCCINCTLY, DELIVER INNOVATION WITH EASE, ESSENTIAL, and .NET ESSENTIALS are the registered trademarks of Syncfusion, Inc. Technical Reviewer: Stephen Haunts Copy Editor: Ben Ball Acquisitions Coordinator: Hillary Bowling, marketing coordinator, Syncfusion, Inc. Proofreader: Graham High, content producer, Syncfusion, Inc. 3 Table of Contents The Story behind the Succinctly Series of Books ................................................................................... 7 About the Author ......................................................................................................................................... 9 Chapter 1 Introducing C# and .NET ....................................................................................................... 10 What can I do with C#? .......................................................................................................................... 10 What is .NET? ........................................................................................................................................ 10 Writing, Running, and Deploying a C# Program .................................................................................... 11 Starting a New Program ................................................................................................................... 11 Namespaces and Code Organization .................................................................................................... 12 Running the Program ........................................................................................................................ 14 Deploying the Program ..................................................................................................................... 15 Summary ................................................................................................................................................ 16 Chapter 2 Coding Expressions and Statements ................................................................................... 17 Writing Simple Statements..................................................................................................................... 17 Overview of C# Types and Operators ................................................................................................... 18 Operator Precedence and Associativity ................................................................................................. 22 Formatting Strings .................................................................................................................................. 22 Branching Statements ............................................................................................................................ 23 Arrays and Collections ........................................................................................................................... 25 Looping Statements ............................................................................................................................... 26 Wrapping Up .......................................................................................................................................... 28 Summary ................................................................................................................................................ 30 Chapter 3 Methods and Properties ........................................................................................................ 31 Starting at Main ...................................................................................................................................... 31 Modularizing with Methods .................................................................................................................... 31 4 Simplifying Code with Methods .............................................................................................................. 34 Adding Properties .................................................................................................................................. 34 Exception Handling ................................................................................................................................ 37 Summary ................................................................................................................................................ 41 Chapter 4 Writing Object-Oriented Code ............................................................................................... 42 Implementing Inheritance....................................................................................................................... 42 Access Modifiers and Encapsulation ..................................................................................................... 44 Designing Types: Class vs. Struct ......................................................................................................... 44 Creating Enums ..................................................................................................................................... 48 Enabling Polymorphism ......................................................................................................................... 49 Writing Abstract Classes ........................................................................................................................ 53 Exposing Interfaces ............................................................................................................................... 54 Object Lifetime ....................................................................................................................................... 56 Summary ................................................................................................................................................ 61 Chapter 5 Handling Delegates, Events, and Lambdas ......................................................................... 62 Referencing Methods with Delegates .................................................................................................... 62 Firing Events .......................................................................................................................................... 63 Working with Lambdas ........................................................................................................................... 65 More FCL Delegate Types ..................................................................................................................... 68 Expression-Bodied Members ................................................................................................................. 69 Summary ................................................................................................................................................ 70 Chapter 6 Working with Collections and Generics .............................................................................. 71 Using Collections ................................................................................................................................... 71 Writing Generic Code ............................................................................................................................. 74 Summary ................................................................................................................................................ 79 Chapter 7 Querying Objects with LINQ .................................................................................................. 80 Getting Started ....................................................................................................................................... 80 5 Querying Collections .............................................................................................................................. 81 Filtering Data .......................................................................................................................................... 83 Ordering Collections .............................................................................................................................. 84 Joining Objects ...................................................................................................................................... 84 Using Standard Operators ..................................................................................................................... 85 Summary
Recommended publications
  • Ironpython in Action
    IronPytho IN ACTION Michael J. Foord Christian Muirhead FOREWORD BY JIM HUGUNIN MANNING IronPython in Action Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> IronPython in Action MICHAEL J. FOORD CHRISTIAN MUIRHEAD MANNING Greenwich (74° w. long.) Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> For online information and ordering of this and other Manning books, please visit www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact Special Sales Department Manning Publications Co. Sound View Court 3B fax: (609) 877-8256 Greenwich, CT 06830 email: [email protected] ©2009 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15% recycled and processed without the use of elemental chlorine.
    [Show full text]
  • Introducing Visual Studio 2010
    INTRODUCING VISUAL STUDIO 2010 DAVID CHAPPELL MAY 2010 SPONSORED BY MICROSOFT CONTENTS Tools and Modern Software Development ............................................................................................ 3 Understanding Visual Studio 2010 ........................................................................................................ 3 The Components of Visual Studio 2010 ................................................................................................... 4 A Closer Look at Team Foundation Server............................................................................................... 5 Work Item Tracking ............................................................................................................................. 7 Version Control .................................................................................................................................... 8 Build Management: Team Foundation Build ...................................................................................... 9 Reporting and Dashboards.................................................................................................................. 9 Using Visual Studio 2010 ..................................................................................................................... 12 Managing Requirements ....................................................................................................................... 12 Architecting a Solution .........................................................................................................................
    [Show full text]
  • Q# Introduction
    Introduction to Q# Q# (Q-sharp) is a domain-specific and open-sourced programming language, part of Microsoft's Quantum Development Kit (QDK), used for expressing quantum algorithms. It is to be used for writing subroutines that execute on an adjunct quantum processing unit (QPU), under the control of a classical host program and computer. Q# can be installed on Windows 10, OSX and Linux. The instructions to install Q# can be found in the online documentation here. If you prefer not to install Q# on your local computer, you can use one of the machines in CSE’s Virtual Lab found here. The Windows 10 machines already have .Net Core SDK, Visual Studio and VS Code installed to get your started, you should still install the Q# extension to get syntax- highlighting, code complete, etc. To get help with Q# and the QDK, feel free to ask questions on our messages board, come to office hours as posted on the calendar, or ask in stackoverflow. The Q# team is constantly monitoring any questions posted there with the "q#" tag. Writing Q# programs. Operations and functions are the basic unit of execution in Q#. They are roughly equivalent to a function in C or C++ or Python, or a static method in C# or Java. A Q# operation is a quantum subroutine. That is, it is a callable routine that contains quantum operations. A Q# function is a classical subroutine used within a quantum algorithm. It may contain classical code but no quantum operations. Specifically, functions may not allocate or borrow qubits, nor may they call operations.
    [Show full text]
  • Visual Studio 2010 Tools for Sharepoint Development
    Visual Studio 2010 for SharePoint Open XML and Content Controls COLUMNS Toolbox Visual Studio 2010 Tools for User Interfaces, Podcasts, Object-Relational Mappings SharePoint Development and More Steve Fox page 44 Scott Mitchell page 9 CLR Inside Out Profi ling the .NET Garbage- Collected Heap Subramanian Ramaswamy & Vance Morrison page 13 Event Tracing Event Tracing for Windows Basic Instincts Collection and Array Initializers in Visual Basic 2010 Generating Documents from SharePoint Using Open XML Adrian Spotty Bowles page 20 Content Controls Data Points Eric White page 52 Data Validation with Silverlight 3 and the DataForm John Papa page 30 Cutting Edge Data Binding in ASP.NET AJAX 4.0 Dino Esposito page 36 Patterns in Practice Functional Programming Core Instrumentation Events in Windows 7, Part 2 for Everyday .NET Developers MSDN Magazine Dr. Insung Park & Alex Bendetov page 60 Jeremy Miller page 68 Service Station Building RESTful Clients THIS MONTH at msdn.microsoft.com/magazine: Jon Flanders page 76 CONTRACT-FIRST WEB SERVICES: Schema-Based Development Foundations with Windows Communication Foundation Routers in the Service Bus Christian Weyer & Buddihke de Silva Juval Lowy page 82 TEST RUN: Partial Anitrandom String Testing Concurrent Affairs James McCaffrey Four Ways to Use the Concurrency TEAM SYSTEM: Customizing Work Items Runtime in Your C++ Projects Rick Molloy page 90 OCTOBER Brian A. Randell USABILITY IN PRACTICE: Getting Inside Your Users’ Heads 2009 Charles B. Kreitzberg & Ambrose Little Vol 24 No 10 Vol OCTOBER 2009 VOL 24 NO 10 OCTOBER 2009 VOLUME 24 NUMBER 10 LUCINDA ROWLEY Director EDITORIAL: [email protected] HOWARD DIERKING Editor-in-Chief WEB SITE MICHAEL RICHTER Webmaster CONTRIBUTING EDITORS Don Box, Keith Brown, Dino Esposito, Juval Lowy, Dr.
    [Show full text]
  • Pyrevit Documentation Release 4.7.0-Beta
    pyRevit Documentation Release 4.7.0-beta eirannejad May 15, 2019 Getting Started 1 How To Use This Documents3 2 Create Your First Command5 3 Anatomy of a pyRevit Script 7 3.1 Script Metadata Variables........................................7 3.2 pyrevit.script Module...........................................9 3.3 Appendix A: Builtin Parameters Provided by pyRevit Engine..................... 12 3.4 Appendix B: System Category Names.................................. 13 4 Effective Output/Input 19 4.1 Clickable Element Links......................................... 19 4.2 Tables................................................... 20 4.3 Code Output............................................... 21 4.4 Progress bars............................................... 21 4.5 Standard Prompts............................................. 22 4.6 Standard Dialogs............................................. 26 4.7 Base Forms................................................ 35 4.8 Graphs.................................................. 37 5 Keyboard Shortcuts 45 5.1 Shift-Click: Alternate/Config Script................................... 45 5.2 Ctrl-Click: Debug Mode......................................... 45 5.3 Alt-Click: Show Script file in Explorer................................. 46 5.4 Ctrl-Shift-Alt-Click: Reload Engine................................... 46 5.5 Shift-Win-Click: pyRevit Button Context Menu............................. 46 6 Extensions and Commmands 47 6.1 Why do I need an Extension....................................... 47 6.2 Extensions...............................................
    [Show full text]
  • 2009 Door County Folk Festival Syllabus.Pdf
    30th Annual Door County Folk Festival Get Your Foot in the Door! Wednesday – Sunday, July 8 – 12, 2009 Sister Bay, Ephraim and Baileys Harbor, Wisconsin http://www.dcff.net/[email protected]/(773-463-2288) DCFF Home Dance Syllabus Advance Regular Discount Price On Paper $19.00 $22.00 OnCD $8.00 $11.00 2009 Door County Folk Festival (DCFF), Wisconsin 2009 Door County Folk Festival Schedule v11 (Subject to Change - Changes Marked with +) Get Your Foot in the Door! Wednesday - Sunday, July 8-12, 2009 - Sister Bay, Ephraim and Baileys Harbor, Wisconsin DCFF Home Phone: (773)-463-2288 or (773)-634-9381 [email protected] Wednesday Start End Where Event Who Afternoon 12:00pm SBVH Staff Arrives Staff & Volunteers 1:00pm SBVH Setup Begins Staff & Volunteers Evening 6:00pm SBVH Registration Begins Staff & Volunteers 6:30pm 9:00pm BHTH TCE Program - Session 1 - Grades K-5 Sanna Longden 8:00pm 1:00am SBVH 8th of July Party with Recorded Music Forrest Johnson & Other Regional Leaders 1:00am 2:30am SBVH Late Night Party Paul Collins & Company Thursday Start End Where Event Who Morning 9:00am SBVH Setup & Registration Continues Staff & Volunteers 9:00am 12:00pm BHTH TCE Program - Session 2 - Grades K-5 Sanna Longden 10:00am 11:45am SBVH Vintage American Round Dances Paul Collins Afternoon 11:45am 1:15pm Lunch Break 12:00pm 1:00pm SBVH Zumba Latin Dance Workout Session Diane Garvey 1:15pm 3:00pm SBVH Swing Dance - Lindy Hop Workshop Maureen Majeski: Lindy Hop 1:15pm 3:00pm BHTH Regional Greek Folk Dance Workshop Rick King, Dit Olshan, Paul Collins Rick: Vlaha
    [Show full text]
  • Teamcity 7.1 Documentation.Pdf
    1. TeamCity Documentation . 4 1.1 What's New in TeamCity 7.1 . 5 1.2 What's New in TeamCity 7.0 . 14 1.3 Getting Started . 26 1.4 Concepts . 30 1.4.1 Agent Home Directory . 31 1.4.2 Agent Requirements . 32 1.4.3 Agent Work Directory . 32 1.4.4 Authentication Scheme . 33 1.4.5 Build Agent . 33 1.4.6 Build Artifact . 34 1.4.7 Build Chain . 35 1.4.8 Build Checkout Directory . 36 1.4.9 Build Configuration . 37 1.4.10 Build Configuration Template . 38 1.4.11 Build Grid . 39 1.4.12 Build History . 40 1.4.13 Build Log . 40 1.4.14 Build Number . 40 1.4.15 Build Queue . 40 1.4.16 Build Runner . 41 1.4.17 Build State . 41 1.4.18 Build Tag . 42 1.4.19 Build Working Directory . 43 1.4.20 Change . 43 1.4.21 Change State . 43 1.4.22 Clean Checkout . 44 1.4.23 Clean-Up . 45 1.4.24 Code Coverage . 46 1.4.25 Code Duplicates . 47 1.4.26 Code Inspection . 47 1.4.27 Continuous Integration . 47 1.4.28 Dependent Build . 47 1.4.29 Difference Viewer . 49 1.4.30 Guest User . 50 1.4.31 History Build . 51 1.4.32 Notifier . 51 1.4.33 Personal Build . 52 1.4.34 Pinned Build . 52 1.4.35 Pre-Tested (Delayed) Commit . 52 1.4.36 Project . 53 1.4.37 Remote Run . ..
    [Show full text]
  • Mixed-Signal and Dsp Design Techniques
    MIXED-SIGNAL AND DSP DESIGN TECHNIQUES INTRODUCTION SECTION 1 SAMPLED DATA SYSTEMS SECTION 2 ADCs FOR DSP APPLICATIONS SECTION 3 DACs FOR DSP APPLICATIONS SECTION 4 FAST FOURIER TRANSFORMS SECTION 5 DIGITAL FILTERS SECTION 6 DSP HARDWARE SECTION 7 INTERFACING TO DSPs SECTION 8 DSP APPLICATIONS SECTION 9 HARDWARE DESIGN SECTION 10 TECHNIQUES INDEX ANALOG DEVICES TECHNICAL REFERENCE BOOKS PUBLISHED BY PRENTICE HALL Analog-Digital Conversion Handbook Digital Signal Processing Applications Using the ADSP-2100 Family (Volume 1:1992, Volume 2:1994) Digital Signal Processing in VLSI DSP Laboratory Experiments Using the ADSP-2101 ADSP-2100 Family User's Manual PUBLISHED BY ANALOG DEVICES Practical Design Techniques for Sensor Signal Conditioning Practical Design Techniques for Power and Thermal Management High Speed Design Techniques Practical Analog Design Techniques Linear Design Seminar ADSP-21000 Family Applications Handbook System Applications Guide Amplifier Applications Guide Nonlinear Circuits Handbook Transducer Interfacing Handbook Synchro & Resolver Conversion THE BEST OF Analog Dialogue, 1967-1991 HOW TO GET INFORMATION FROM ANALOG DEVICES Analog Devices publishes data sheets and a host of other technical literature supporting our products and technologies. Follow the instructions below for worldwide access to this information. FOR DATA SHEETS U.S.A. and Canada I Fax Retrieval. Telephone number 800-446-6212. Call this number and use a faxcode corresponding to the data sheet of your choice for a fax-on-demand through our automated AnalogFax™ system. Data sheets are available 7 days a week, 24 hours a day. Product/faxcode cross reference listings are available by calling the above number and following the prompts.
    [Show full text]
  • Programming with Windows Forms
    A P P E N D I X A ■ ■ ■ Programming with Windows Forms Since the release of the .NET platform (circa 2001), the base class libraries have included a particular API named Windows Forms, represented primarily by the System.Windows.Forms.dll assembly. The Windows Forms toolkit provides the types necessary to build desktop graphical user interfaces (GUIs), create custom controls, manage resources (e.g., string tables and icons), and perform other desktop- centric programming tasks. In addition, a separate API named GDI+ (represented by the System.Drawing.dll assembly) provides additional types that allow programmers to generate 2D graphics, interact with networked printers, and manipulate image data. The Windows Forms (and GDI+) APIs remain alive and well within the .NET 4.0 platform, and they will exist within the base class library for quite some time (arguably forever). However, Microsoft has shipped a brand new GUI toolkit called Windows Presentation Foundation (WPF) since the release of .NET 3.0. As you saw in Chapters 27-31, WPF provides a massive amount of horsepower that you can use to build bleeding-edge user interfaces, and it has become the preferred desktop API for today’s .NET graphical user interfaces. The point of this appendix, however, is to provide a tour of the traditional Windows Forms API. One reason it is helpful to understand the original programming model: you can find many existing Windows Forms applications out there that will need to be maintained for some time to come. Also, many desktop GUIs simply might not require the horsepower offered by WPF.
    [Show full text]
  • Discovering Ironpython
    PART I Introducing IronPython ⊲⊲ CHAPTER 1: Discovering IronPython ⊲⊲ CHAPTER 2: Understanding the IronPython Basics COPYRIGHTED MATERIAL 548592c01.indd 1 2/24/10 12:47:07 PM 548592c01.indd 2 2/24/10 12:47:08 PM 1 Discovering IronPython WHAT’S IN THIS CHAPTER? ➤➤ Understanding why you want to add IronPython to your developer toolbox ➤➤ Obtaining and installing IronPython on your machine ➤➤ Understanding some underlying basics of how IronPython works ➤➤ Using IronPython at the console and within a window ➤➤ Designing and building a simple application IronPython: It sounds like some kind of metal snake infesting your computer, but it isn’t. IronPython is the .NET version of the open source Python language (http://www .python.org/). Python is a dynamic language that can greatly enhance your programming experience, help you create applications in less time, and make the applications you create significantly more responsive to user needs. Of course, you’ve heard these promises before from other languages. This chapter helps you understand how IronPython delivers on these promises in specific situations. The smart developer soon learns that every language serves specific needs and might not work well in others. So this chapter isn’t here to blow smoke at you — ​once you complete it, you’ll understand the strengths and weaknesses of IronPython. Of course, you’ll need to obtain a copy of IronPython before you can use it because Visual Studio doesn’t include IronPython as part of the default installation. This chapter helps you get IronPython installed on your system and tells you about some options you may want to install as well.
    [Show full text]
  • NET Hacking & In-Memory Malware
    .NET Hacking & In-Memory Malware Shawn Edwards Shawn Edwards Cyber Adversarial Engineer The MITRE Corporation Hacker Maker Learner Take stuff apart. Change it. Put Motivated by an incessant Devoted to a continuous effort it back together. desire to create and craft. of learning and sharing knowledge. Red teamer. Adversary Numerous personal and emulator. professional projects. B.S. in Computer Science. Adversary Emulation @ MITRE • Red teaming, but specific threat actors • Use open-source knowledge of their TTPs to emulate their behavior and operations • Ensures techniques are accurate to real world • ATT&CK (Adversarial Tactics Techniques and Common Knowledge) • Public wiki of real-world adversary TTPs, software, and groups • CALDERA • Modular Automated Adversary Emulation framework Adversary Emulation @ MITRE • ATT&CK • Adversarial Tactics Techniques and Common Knowledge • Public wiki of real-world adversary TTPs, software, and groups • Lets blue team and red team speak in the same language • CALDERA • Modular Automated Adversary Emulation framework • Adversary Mode: • AI-driven “red team in a box” • Atomic Mode: • Define Adversaries, give them abilities, run operations. Customize everything at will. In-Memory Malware • Is not new • Process Injection has been around for a long time • Typically thought of as advanced tradecraft; not really • Surged in popularity recently • Made easier by open-source or commercial red team tools • For this talk, only discuss Windows malware • When relevant, will include the ATT&CK Technique ID In-Memory
    [Show full text]
  • MEMOIRE DE FIN D'etudes En Vue De L'obtention Du DIPLOME De Licence Ès Sciences Techniques DEVELOPPEMENT D'un LOGICIEL DE
    N° d’ordre : 07/L3/TCO Année Universitaire : 2010 / 2011 UNIVERSITE D’ANTANANARIVO ---------------------- ECOLE SUPERIEURE POLYTECHNIQUE ----------------------- DEPARTEMENT TELECOMMUNICATION MEMOIRE DE FIN D’ETUDES en vue de l’obtention du DIPLOME de Licence ès sciences techniques Spécialité : Télécommunication par : RADIASON Tsiry Andriamampianina DEVELOPPEMENT D’UN LOGICIEL DE MESSAGERIE INSTANTANEE AVEC UN MODULE DE CRYPTAGE DE MESSAGE Soutenu le 20 Juillet 2012 Président : M. RAKOTOMALALA Mamy Alain Examinateurs : M. RAKOTONDRAINA Tahina Ezéchiel Mme. ANDRIANTSILAVO Haja Samiarivonjy Mme. RAMAFIARISONA Malalatiana Directeur de mémoire : Monsieur RAVONIMANANTSOA Ndaohialy Manda-Vy TABLE DES MATIERES TABLE DES MATIERES .................................................................................................................... i LISTE DES FIGURES........................................................................................................................ iv TABLE DES ABREVIATIONS ......................................................................................................... vi REMERCIEMENT ............................................................................................................................. x INTRODUCTION GENERALE ........................................................................................................ 1 CHAPITRE 1 GENERALITE ............................................................................................................ 3 1. Presentation du protocole SIP ................................................................................................
    [Show full text]