SlideShare una empresa de Scribd logo
1 de 29
C# for C++ Programmers,[object Object],A crash course,[object Object]
C#: the basics,[object Object],Lots of similarities with C++,[object Object],Object-oriented,[object Object],Classes, structs, enums,[object Object],Familiar basic types: int, double, bool,…,[object Object],Familiar keywords: for, while, if, else,…,[object Object],Similar syntax: curly braces { }, dot notation,…,[object Object],Exceptions: try and catch,[object Object]
C#: the basics,[object Object],Actually much more similar to Java,[object Object],Everything lives in a class/struct (no globals),[object Object],No pointers! (so no ->, * or & notation),[object Object],Garbage collection: no delete!,[object Object],No header files,[object Object],No multiple inheritance,[object Object],Interfaces,[object Object],Static members accessed with . (not ::),[object Object],In a nutshell: much easier than C++ ,[object Object]
Hello, world!,[object Object],using System;,[object Object],// Everything's in a namespace,[object Object],namespace HelloWorldApp,[object Object],{,[object Object],// A simple class,[object Object],class Program,[object Object],    {,[object Object],// A simple field: note we can instantiate it on the same line,[object Object],private static String helloMessage = "Hello, world!";,[object Object],// Even Main() isn't global!,[object Object],static void Main(string[] args),[object Object],        {,[object Object],Console.WriteLine(helloMessage);,[object Object],        },[object Object],    },[object Object],},[object Object]
C# features,[object Object],Properties,[object Object],Interfaces,[object Object],The foreach keyword,[object Object],The readonly keyword,[object Object],Parameter modifiers: ref and out,[object Object],Delegates and events,[object Object],Instead of callbacks,[object Object],Generics,[object Object],Instead of templates,[object Object]
Properties,[object Object],Class members, alongside methods and fields,[object Object],“field” is what C# calls a member variable,[object Object],Properties “look like fields, behave like methods”,[object Object],By convention, names are in UpperCamelCase,[object Object],Very basic example on next slide,[object Object]
Properties: simple example,[object Object],class Thing,[object Object],{,[object Object],// Private field (the “backing field”),[object Object],private String name;,[object Object],// Public property,[object Object],public String Name,[object Object],    {,[object Object],get,[object Object],        {,[object Object],            return name;,[object Object],        },[object Object],set,[object Object], {,[object Object],// "value" is an automatic,[object Object],            // variable inside the setter,[object Object],name = value;,[object Object],        },[object Object],    },[object Object],},[object Object],class Program,[object Object],{,[object Object],static void Main(string[] args),[object Object],    {,[object Object],Thing t = new Thing();,[object Object],        // Use the setter,[object Object],t.Name = "Fred";,[object Object],        // Use the getter,[object Object],Console.WriteLine(t.Name);,[object Object],    },[object Object],},[object Object]
Properties,[object Object],So far, looks just like an over-complicated field,[object Object],So why bother?,[object Object]
Properties: advanced getter/setter,[object Object],class Thing,[object Object],{,[object Object],// Private field (the “backing field”),[object Object],private String name;,[object Object],private static intrefCount = 0;,[object Object],// Public property,[object Object],public String Name,[object Object],    {,[object Object],get,[object Object],        {,[object Object],            returnname.ToUpper();,[object Object],        },[object Object],        set,[object Object], {,[object Object],name = value;,[object Object],refCount++;,[object Object],        },[object Object],    },[object Object],},[object Object],Can hide implementation detail inside a property,[object Object],Hence “looks like a field, behaves like a method”,[object Object]
Properties: access modifiers,[object Object],class Thing,[object Object],{,[object Object],// Private field (the “backing field”),[object Object],private String _name;,[object Object],// Public property,[object Object],public String Name,[object Object],    {,[object Object],get,[object Object],        {,[object Object],            return _name;,[object Object],        },[object Object],private set,[object Object], {,[object Object],_name = value;,[object Object],        },[object Object],    },[object Object],},[object Object],Now only the class itself can modify the value,[object Object],Any object can get the value,[object Object]
Properties: getter only,[object Object],class Thing,[object Object],{,[object Object],    // Public property,[object Object],public intCurrentHour,[object Object],    {,[object Object],get,[object Object],        {,[object Object],            returnDateTime.Now.Hour;,[object Object],        },[object Object],    },[object Object],},[object Object],In this case it doesn’t make sense to offer a setter,[object Object],Can also implement a setter but no getter,[object Object],Notice that Now and Hour are both properties too (of DateTime) – and Now is static!,[object Object]
Properties: even simpler example,[object Object],class Thing,[object Object],{,[object Object],// Private field (the “backing field”),[object Object],private String _name;,[object Object],// Public property,[object Object],public String Name,[object Object],    {,[object Object],get,[object Object],        {,[object Object],            return _name;,[object Object],        },[object Object],set,[object Object], {,[object Object],_name = value;,[object Object],        },[object Object],    },[object Object],},[object Object],class Thing,[object Object],{,[object Object],// If all you want is a simple,[object Object],    // getter/setter pair, no need for a,[object Object],    // backing field at all,[object Object],public String Name { get; set; },[object Object],// As you might have guessed, access,[object Object],    // modifiers can be used,[object Object],public boolIsBusy { get; privateset; },[object Object],},[object Object]
Properties,[object Object],A really core feature of C#,[object Object],You’ll see them everywhere,[object Object],DateTime.Now,[object Object],String.Length,[object Object],etc.,[object Object],Get into the habit of using a property whenever you need a getter and/or setter,[object Object],Preferred to using GetValue(), SetValue() methods,[object Object],Never use public fields!,[object Object]
Interfaces,[object Object],Very similar to interfaces in Java,[object Object],Or M-classes (mixins) in Symbian,[object Object],Like a class, but all its members are implicitly abstract,[object Object],i.e. it does not provide any method implementations, only method signatures,[object Object],A class can only inherit from a single base class, but may implement multiple interfaces,[object Object]
foreach,[object Object],Simplified for loop syntax (familiar from Qt!),[object Object],int[] myInts = new int[] { 1, 2, 3, 4, 5 };,[object Object],foreach (intiinmyInts),[object Object],{,[object Object],Console.WriteLine(i);,[object Object],},[object Object],Works with built-in arrays, collection classes and any class implementing IEnumerable interface,[object Object],Stringimplements IEnumerable<char>,[object Object]
readonly,[object Object],For values that can only be assigned during construction,[object Object],class Thing,[object Object],{,[object Object],    private readonlyString name;,[object Object],privatereadonlyintage =42;// OK,[object Object],public Thing() {,[object Object],        name = "Fred";// Also OK,[object Object],},[object Object],public void SomeMethod() {,[object Object],        name = "Julie";// Error,[object Object],},[object Object],},[object Object]
readonly & const,[object Object],C# also has the const keyword,[object Object],As in C++, used for constant values known at compile time,[object Object],Not identical to C++ const though,[object Object],Not used for method parameters,[object Object],Not used for method signatures,[object Object]
Parameter modifiers: ref,[object Object],No (explicit) pointers or references in C#,[object Object],In effect, all parameters are passed by reference,[object Object],But not quite...,[object Object],static void Main(string[] args) {,[object Object],String message = "I'm hot";,[object Object],negate(message);,[object Object],Console.WriteLine(message);,[object Object],},[object Object],static void negate(String s) {,[object Object],    s += "... NOT!";,[object Object],},[object Object],Result:,[object Object],> I'm hot,[object Object]
Parameter modifiers: ref,[object Object],Although param passing as efficient as “by reference”, effect is more like “by const reference”,[object Object],The ref keyword fixes this,[object Object],static void Main(string[] args) {,[object Object],String message = "I'm hot";,[object Object],negate(ref message);,[object Object],Console.WriteLine(message);,[object Object],},[object Object],static void negate(refString s) {,[object Object],    s += "... NOT!";,[object Object],},[object Object],Result:,[object Object],> I'm hot... NOT!,[object Object]
Parameter modifiers: out,[object Object],Like ref but must be assigned in the method,[object Object],static void Main(string[] args) {,[object Object],DateTime now;,[object Object],if (isAfternoon(out now)) {,[object Object],Console.WriteLine("Good afternoon, it is now " + now.TimeOfDay.ToString());,[object Object],    },[object Object],else {,[object Object],Console.WriteLine("Please come back this afternoon.");,[object Object],    },[object Object],},[object Object],static boolisAfternoon(out DateTimecurrentTime) {,[object Object],currentTime = DateTime.Now;,[object Object],returncurrentTime.Hour >= 12;,[object Object],},[object Object]
Delegates,[object Object],Delegates are how C# defines a dynamic interface between two methods,[object Object],Same goal as function pointers in C, or signals and slots in Qt,[object Object],Delegates are type-safe,[object Object],Consist of two parts: a delegate type and a delegate instance,[object Object],I can never remember the syntax for either!,[object Object],Keep a reference book handy… ,[object Object]
Delegates,[object Object],A delegate type looks like an (abstract) method declaration, preceded with the delegate keyword,[object Object],A delegate instance creates an instance of this type, supplying it with the name of a real method to attach to,[object Object],Example on next slide,[object Object]
Delegates,[object Object],// Delegate type (looks like an abstract method),[object Object],delegate intTransform(intnumber);,[object Object],// The real method we're going to attach to the delegate,[object Object],static intDoubleIt(intnumber) {,[object Object],    return number * 2;,[object Object],},[object Object],static void Main(string[] args) {,[object Object],// Create a delegate instance,[object Object],Transform transform;,[object Object],    // Attach it to a real method,[object Object],transform = DoubleIt;,[object Object],    // And now call it (via the delegate),[object Object],intresult = transform(5);,[object Object],Console.WriteLine(result);,[object Object],},[object Object],Result:,[object Object],> 10,[object Object]
Multicast delegates,[object Object],A delegate instance can have more than one real method attached to it,[object Object],Transform transform;,[object Object],transform += DoubleIt;,[object Object],transform += HalveIt;,[object Object],// etc.,[object Object],Now when we call transform(), all methods are called,[object Object],Called in the order in which they were added,[object Object]
Multicast delegates,[object Object],Methods can also be removed from a multicast delegate,[object Object],transform -= DoubleIt;,[object Object],You might start to see how delegates could be used to provide clean, decoupled UI event handling,[object Object],e.g. handling mouse click events,[object Object],But…,[object Object]
Multicast delegates: problems,[object Object],What happens if one object uses = instead of += when attaching its delegate method?,[object Object],All other objects’ delegate methods are detached!,[object Object],What if someone sets the delegate instance to null?,[object Object],Same problem: all delegate methods get detached,[object Object],What if someone calls the delegate directly?,[object Object],All the delegate methods are called, even though the event they’re interested in didn’t really happen,[object Object]
Events,[object Object],Events are just a special, restricted form of delegate,[object Object],Designed to prevent the problems listed on the previous slide,[object Object],Core part of C# UI event handling,[object Object],Controls have standard set of events you can attach handlers to (like signals in Qt), e.g.:,[object Object],myButton.Click += OnButtonClicked;,[object Object]
Advanced C# and .NET,[object Object],Generics,[object Object],Look and behave pretty much exactly like C++ templates,[object Object],Assemblies,[object Object],Basic unit of deployment in .NET,[object Object],Typically a single .EXE or .DLL,[object Object],Extra access modifier internal(in addition to public, protected and private) gives access to other classes within the same assembly,[object Object],Only really makes sense in a class library DLL,[object Object]
Further reading,[object Object],Reference documentation on MSDN:http://msdn.microsoft.com/en-us/library,[object Object],Microsoft’s Silverlight.net site:http://www.silverlight.net/,[object Object],StackOverflow of course!http://stackoverflow.com/,[object Object],C# in a Nutshell – highly recommended!http://oreilly.com/catalog/9780596800956/,[object Object],Free MS Press eBook: ProgrammingWindows Phone 7http://www.charlespetzold.com/phone/,[object Object]

Más contenido relacionado

La actualidad más candente

Php and threads ZTS
Php and threads ZTSPhp and threads ZTS
Php and threads ZTSjulien pauli
 
Clean code and Code Smells
Clean code and Code SmellsClean code and Code Smells
Clean code and Code SmellsMario Sangiorgio
 
Polymorphism in C++
Polymorphism in C++Polymorphism in C++
Polymorphism in C++Rabin BK
 
Introduction to Design Patterns and Singleton
Introduction to Design Patterns and SingletonIntroduction to Design Patterns and Singleton
Introduction to Design Patterns and SingletonJonathan Simon
 
Clean Code - Design Patterns and Best Practices at Silicon Valley Code Camp
Clean Code - Design Patterns and Best Practices at Silicon Valley Code CampClean Code - Design Patterns and Best Practices at Silicon Valley Code Camp
Clean Code - Design Patterns and Best Practices at Silicon Valley Code CampTheo Jungeblut
 
Clean Code II - Dependency Injection
Clean Code II - Dependency InjectionClean Code II - Dependency Injection
Clean Code II - Dependency InjectionTheo Jungeblut
 
Advanced c programming in Linux
Advanced c programming in Linux Advanced c programming in Linux
Advanced c programming in Linux Mohammad Golyani
 
Polymorphism in Java
Polymorphism in JavaPolymorphism in Java
Polymorphism in JavaJava2Blog
 
Golang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / OverviewGolang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / OverviewMarkus Schneider
 
Best Practices in Exception Handling
Best Practices in Exception HandlingBest Practices in Exception Handling
Best Practices in Exception HandlingLemi Orhan Ergin
 

La actualidad más candente (20)

16 virtual function
16 virtual function16 virtual function
16 virtual function
 
Php and threads ZTS
Php and threads ZTSPhp and threads ZTS
Php and threads ZTS
 
GCC compiler
GCC compilerGCC compiler
GCC compiler
 
Clean code
Clean codeClean code
Clean code
 
Clean code and Code Smells
Clean code and Code SmellsClean code and Code Smells
Clean code and Code Smells
 
Polymorphism in C++
Polymorphism in C++Polymorphism in C++
Polymorphism in C++
 
Clean code
Clean codeClean code
Clean code
 
Javapolymorphism
JavapolymorphismJavapolymorphism
Javapolymorphism
 
Introduction to Design Patterns and Singleton
Introduction to Design Patterns and SingletonIntroduction to Design Patterns and Singleton
Introduction to Design Patterns and Singleton
 
Inline functions
Inline functionsInline functions
Inline functions
 
Clean Code - Design Patterns and Best Practices at Silicon Valley Code Camp
Clean Code - Design Patterns and Best Practices at Silicon Valley Code CampClean Code - Design Patterns and Best Practices at Silicon Valley Code Camp
Clean Code - Design Patterns and Best Practices at Silicon Valley Code Camp
 
Python: Polymorphism
Python: PolymorphismPython: Polymorphism
Python: Polymorphism
 
Clean Code II - Dependency Injection
Clean Code II - Dependency InjectionClean Code II - Dependency Injection
Clean Code II - Dependency Injection
 
Advanced c programming in Linux
Advanced c programming in Linux Advanced c programming in Linux
Advanced c programming in Linux
 
Polymorphism in Java
Polymorphism in JavaPolymorphism in Java
Polymorphism in Java
 
Golang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / OverviewGolang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / Overview
 
Clean code
Clean codeClean code
Clean code
 
Intro to c++
Intro to c++Intro to c++
Intro to c++
 
Clean code slide
Clean code slideClean code slide
Clean code slide
 
Best Practices in Exception Handling
Best Practices in Exception HandlingBest Practices in Exception Handling
Best Practices in Exception Handling
 

Destacado

Abstraction in java
Abstraction in javaAbstraction in java
Abstraction in javasawarkar17
 
Abstract class and Interface
Abstract class and InterfaceAbstract class and Interface
Abstract class and InterfaceHaris Bin Zahid
 
Java Programming - Abstract Class and Interface
Java Programming - Abstract Class and InterfaceJava Programming - Abstract Class and Interface
Java Programming - Abstract Class and InterfaceOum Saokosal
 
Classes And Objects
Classes And ObjectsClasses And Objects
Classes And Objectsrahulsahay19
 
difference between c c++ c#
difference between c c++ c#difference between c c++ c#
difference between c c++ c#Sireesh K
 
20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental PrinciplesIntro C# Book
 
8 abstract classes and interfaces
8   abstract classes and interfaces 8   abstract classes and interfaces
8 abstract classes and interfaces Tuan Ngo
 
Chapter 9 Abstract Class
Chapter 9 Abstract ClassChapter 9 Abstract Class
Chapter 9 Abstract ClassOUM SAOKOSAL
 

Destacado (10)

C# interview
C# interviewC# interview
C# interview
 
Abstraction in java
Abstraction in javaAbstraction in java
Abstraction in java
 
Abstract class and Interface
Abstract class and InterfaceAbstract class and Interface
Abstract class and Interface
 
Java Programming - Abstract Class and Interface
Java Programming - Abstract Class and InterfaceJava Programming - Abstract Class and Interface
Java Programming - Abstract Class and Interface
 
Classes And Objects
Classes And ObjectsClasses And Objects
Classes And Objects
 
C++ classes
C++ classesC++ classes
C++ classes
 
difference between c c++ c#
difference between c c++ c#difference between c c++ c#
difference between c c++ c#
 
20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles
 
8 abstract classes and interfaces
8   abstract classes and interfaces 8   abstract classes and interfaces
8 abstract classes and interfaces
 
Chapter 9 Abstract Class
Chapter 9 Abstract ClassChapter 9 Abstract Class
Chapter 9 Abstract Class
 

Similar a C# for C++ programmers

CSharp presentation and software developement
CSharp presentation and software developementCSharp presentation and software developement
CSharp presentation and software developementfrwebhelp
 
Java New Programming Features
Java New Programming FeaturesJava New Programming Features
Java New Programming Featurestarun308
 
Classes, objects and methods
Classes, objects and methodsClasses, objects and methods
Classes, objects and methodsfarhan amjad
 
Effecient javascript
Effecient javascriptEffecient javascript
Effecient javascriptmpnkhan
 
Cocoa for Web Developers
Cocoa for Web DevelopersCocoa for Web Developers
Cocoa for Web Developersgeorgebrock
 
Clean code _v2003
 Clean code _v2003 Clean code _v2003
Clean code _v2003R696
 
Working effectively with legacy code
Working effectively with legacy codeWorking effectively with legacy code
Working effectively with legacy codeShriKant Vashishtha
 
Java Generics
Java GenericsJava Generics
Java Genericsjeslie
 
Oop2010 Scala Presentation Stal
Oop2010 Scala Presentation StalOop2010 Scala Presentation Stal
Oop2010 Scala Presentation StalMichael Stal
 
golang_refcard.pdf
golang_refcard.pdfgolang_refcard.pdf
golang_refcard.pdfSpam92
 
Csharp4 objects and_types
Csharp4 objects and_typesCsharp4 objects and_types
Csharp4 objects and_typesAbed Bukhari
 

Similar a C# for C++ programmers (20)

CSharp presentation and software developement
CSharp presentation and software developementCSharp presentation and software developement
CSharp presentation and software developement
 
Java New Programming Features
Java New Programming FeaturesJava New Programming Features
Java New Programming Features
 
Ruby Programming Assignment Help
Ruby Programming Assignment HelpRuby Programming Assignment Help
Ruby Programming Assignment Help
 
Ruby Programming Assignment Help
Ruby Programming Assignment HelpRuby Programming Assignment Help
Ruby Programming Assignment Help
 
Classes, objects and methods
Classes, objects and methodsClasses, objects and methods
Classes, objects and methods
 
Effecient javascript
Effecient javascriptEffecient javascript
Effecient javascript
 
C++ idioms.pptx
C++ idioms.pptxC++ idioms.pptx
C++ idioms.pptx
 
Cocoa for Web Developers
Cocoa for Web DevelopersCocoa for Web Developers
Cocoa for Web Developers
 
Synapseindia dot net development
Synapseindia dot net developmentSynapseindia dot net development
Synapseindia dot net development
 
Oops lecture 1
Oops lecture 1Oops lecture 1
Oops lecture 1
 
What's New in C++ 11?
What's New in C++ 11?What's New in C++ 11?
What's New in C++ 11?
 
Clean code _v2003
 Clean code _v2003 Clean code _v2003
Clean code _v2003
 
Working effectively with legacy code
Working effectively with legacy codeWorking effectively with legacy code
Working effectively with legacy code
 
Java Generics
Java GenericsJava Generics
Java Generics
 
Oop Presentation
Oop PresentationOop Presentation
Oop Presentation
 
1204csharp
1204csharp1204csharp
1204csharp
 
Oop2010 Scala Presentation Stal
Oop2010 Scala Presentation StalOop2010 Scala Presentation Stal
Oop2010 Scala Presentation Stal
 
golang_refcard.pdf
golang_refcard.pdfgolang_refcard.pdf
golang_refcard.pdf
 
Csharp4 objects and_types
Csharp4 objects and_typesCsharp4 objects and_types
Csharp4 objects and_types
 
OOC MODULE1.pptx
OOC MODULE1.pptxOOC MODULE1.pptx
OOC MODULE1.pptx
 

Último

AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 

Último (20)

AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 

C# for C++ programmers

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.