Coder Social home page Coder Social logo

nikiforovall / csharp_workshop Goto Github PK

View Code? Open in Web Editor NEW
5.0 4.0 3.0 2.27 MB

Materials to learn new features of C#8,9.

Home Page: https://bit.ly/3FsDDeX

Dockerfile 0.16% Jupyter Notebook 99.84%
csharp jupyter-notebook dotnet-core dotnet dotnet-interactive csharp-8 csharp-9

csharp_workshop's Introduction

C# Workshop

Binder

Let's explore C#8,9 together.

catjam

Getting started

Binder

Just click "launch binder" and you ready to go.

Devcontainer

Prerequisites:

  • "ms-vscode-remote.vscode-remote-extensionpack" is installed.
  1. Open a new instance of vscode and run command palette command: "Remote Containers: Clone Repository in Container Volume"
    • ("command": "remote-containers.openRepositoryInVolume")
  2. Select GitHub and enter NikiforovAll/csharp_workshop

Manual

Clone repository and investigate on your own.

Agenda

  • notebooks\nullable-reference-types.ipynb

  • samples\scripts\nullable-reference-types.csx

  • notebooks\functions-misc.ipynb

  • samples\scripts\null-coalescing-assignment.csx

  • samples\scripts\static-local-functions.csx

  • samples\scripts\static-anonymous-functions.csx

  • samples\scripts\lambda-discards.csx

  • notebooks\async-streams.ipynb

  • samples\projects\get-enumerator-foreach

  • notebooks\ranges-indexes.ipynb

  • notebooks\using-declarations.ipynb

  • notebooks\pattern-matching.ipynb

  • samples\scripts\pattern-matching\pattern-matching-demo1.csx

  • samples\scripts\pattern-matching\pattern-matching-demo2.csx

  • notebooks\records.ipynb

  • samples\scripts\records.csx

  • samples\scripts\records-demo1.csx

  • samples\scripts\records-demo2.csx

  • samples\scripts\target-typed-new-expressions.csx

  • notebooks\top-level-statements.ipynb

  • samples\projects\simple-webapi\

  • notebooks\module-initializers.ipynb

  • samples\projects\module-init

  • notebooks\source-generators.ipynb

Talk

  • Why do we need particular feature?
    • How does it improve your code?

Plan

  • ➕ Развитие C# в контексте современных языков программирования
  • ➕ Ссылочные типы, допускающие значение null C#8
  • ➕ Выражения. C#7,8,9
  • ➕ Сопоставление шаблонов C#7,8,9
  • ➕ Выражения switch C#8
  • ➕ Литеральные выражения default С#7
  • ➕ Присваивание объединения со значением NULL C#8
  • ➕ Выражения throw C#7
  • ➖ Условные выражения ref C#7.2
  • ➖ Условное выражение с целевым типом C#9
  • ➕ Индексы и диапазоны C#8
  • ➕ Асинхронные последовательности/потоки. Асинхронные высвобождаемые типы C#8
  • ➖ Деконструкция типов C#7,9
  • ➖ Кортежи и пользовательские типы C#7
  • ➕ Поддержка расширения GetEnumerator для циклов foreach С#9
  • ➕ Локальные функции C#7,8
  • ➕ Статические анонимные функции C#9
  • ➕ Атрибуты локальных функций C#9
  • ➕ Параметры удаления (discards) лямбда-выражения C#9
  • ➕ Объявления using C#8
  • ➖ Члены доступные только для чтения C#8
  • ➖ Методы интерфейса по умолчанию C#8
  • ❔ Ковариантные возвращаемые типы C#9
  • ➕ Методы назначения (setters) только инициализации C#9
  • ➕ Записи (Record types) C# 9
  • ➕ Новые выражения целевого типа C#9
  • ➕ Генераторы кода C#9
  • ➕ Инициализаторы модулей C#9
  • ➕ Инструкции верхнего уровня C#9

Reference

csharp_workshop's People

Contributors

imperiod avatar nikiforovall avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

csharp_workshop's Issues

Может стоит уже использовать в контейнере не релиз кандидат? И добавить установку dotnet-script

$ dotnet tool install -g dotnet-script
You can invoke the tool using the following command: dotnet-script
Tool 'dotnet-script' (version '1.0.1') was successfully installed.

$ dotnet script
It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '5.0.0' was not found.

  • The following frameworks were found:
    3.1.5 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]
    5.0.0-rc.2.20475.5 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]

You can resolve the problem by installing the specified framework and/or SDK.

The specified framework can be found at:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.