C# Class & Object Tutorial med exempel

โšก Smart sammanfattning

C#-klasser och objekt ger applikationer objektorienterad struktur genom wrapping relaterade dataegenskaper och metoder inom en enda ritning. Varje objekt รคr en instans av en klass som lagrar sina egna vรคrden fรถr dessa egenskaper.

  • ๐Ÿ”ธ Klass: En klass inkapslar dataegenskaper och de metoder som arbetar med dessa data i en รฅteranvรคndbar mall.
  • ๐ŸŽฏ Objekt: Ett objekt รคr en runtime-instans av en klass som innehรฅller konkreta vรคrden fรถr sina egenskaper.
  • ๐Ÿ—๏ธ Skapande: Nyckelordet new instansierar ett objekt, som i Tutorial pTutor = new Tutorial(), och allokerar minne fรถr det.
  • ๐Ÿงฑ Fรคlt och metoder: Fรคlt lagrar ett objekts tillstรฅnd, medan metoder som SetTutorial och GetTutorial definierar dess beteende.
  • ๐Ÿ” inkapsling: ร…tkomstmodifierare som publik och privat styr vilka fรคlt och metoder utanfรถr kod kan nรฅ.
  • ๐Ÿค– AI-hjรคlp: GitHub Copilot anvรคnder klassdefinitioner som scaffold, medan ML.NET anvรคnder objektdata som funktioner fรถr maskininlรคrningsmodeller.

C# klass och objekt

C# รคr baserat pรฅ C++ programmeringssprรฅk. Dรคrfรถr har programmeringssprรฅket C# inbyggt stรถd fรถr klasser och objekt. En klass รคr inget annat รคn en inkapsling av egenskaper och metoder som anvรคnds fรถr att representera en realtidsenhet.

Till exempel om du vill arbeta med anstรคlldas data i en viss applikation.

Egenskaperna fรถr den anstรคllde skulle vara den anstรคlldes ID och namn. Metoderna skulle inkludera inmatning och รคndring av personaldata.

Alla dessa operationer kan representeras som en klass i C#. I det hรคr kapitlet ska vi titta nรคrmare pรฅ hur vi kan arbeta med klasser och objekt i C#.

Vad รคr klass och objekt?

Lรฅt oss fรถrst bรถrja med klasser.

Som vi diskuterade tidigare klasser รคr en inkapsling av dataegenskaper och datametoder.

  • Egenskaperna anvรคnds fรถr att beskriva data som klassen kommer att hรฅlla.
  • Metoderna berรคttar vad det รคr fรถr operationer som kan utfรถras pรฅ datan.

Fรถr att fรฅ en bรคttre fรถrstรฅelse av klass och objekt, lรฅt oss titta pรฅ ett exempel nedan pรฅ hur en klass skulle se ut.

Namnet pรฅ klassen รคr "Tutorial". Klassen har fรถljande egenskaper

  1. Handlednings-ID โ€“ Detta kommer att anvรคndas fรถr att lagra ett unikt nummer som skulle representera handledningen.
  2. Handledningsnamn โ€“ Detta kommer att anvรคndas fรถr att lagra namnet pรฅ handledningen som en strรคng.

En klass bestรฅr ocksรฅ av metoder. Vรฅr klass har fรถljande metoder,

  1. SetTutorial โ€“ Den hรคr metoden skulle anvรคndas fรถr att stรคlla in handledningens ID och namn. Sรฅ om vi till exempel vill skapa en handledning fรถr .Net, kan vi skapa ett objekt fรถr detta. Objektet skulle ha ett ID pรฅ lรฅt oss sรคga 1. Fรถr det andra skulle vi tilldela namnet ".Net" som namnet pรฅ handledningen. ID-vรคrdet 1 och namnet ".Net" skulle lagras som en egenskap fรถr objektet.
  2. Gettutorial โ€“ Den hรคr metoden skulle anvรคndas fรถr att fรฅ information om en specifik handledning. Sรฅ om vi ville fรฅ namnet pรฅ handledningen, skulle den hรคr metoden returnera strรคngen ".Net".

C# klass och objekt

Nedan รคr en รถgonblicksbild av hur ett objekt kan se ut fรถr vรฅr handledningsklass. Vi har 3 objekt, vart och ett med sitt eget TutorialID och TutorialName.

C# klass och objekt

Hur man skapar en klass och ett objekt

Lรฅt oss nu dyka in Visual Studio att skapa vรฅr klass. Vi kommer att bygga vidare pรฅ vรฅr befintliga konsolapplikation som skapades i vรฅrt tidigare kapitel. Vi kommer att skapa en klass i Visual Studio fรถr vรฅr nuvarande applikation.

Lรฅt oss fรถlja stegen nedan fรถr att fรฅ detta exempel pรฅ plats.

Steg 1) Det fรถrsta steget innebรคr skapandet av en ny klass inom vรฅr befintliga applikation. Detta gรถrs med hjรคlp av Visual Studio.

Skapa en klass och ett objekt

  1. Det fรถrsta steget รคr att hรถgerklicka pรฅ lรถsningen, som i vรฅrt fall รคr 'DemoApplication'. Detta kommer att fรฅ upp en snabbmeny med en lista med alternativ.
  2. Vรคlj alternativet Lรคgg till->Klass i snabbmenyn. Detta ger mรถjlighet att lรคgga till en klass till det befintliga projektet.

Steg 2) Nรคsta steg รคr att ge klassen ett namn och lรคgga till det i vรฅr lรถsning.

Skapa en klass och ett objekt

  1. I projektdialogrutan mรฅste vi fรถrst ange ett namn fรถr vรฅr klass. Lรฅt oss ange ett namn pรฅ Tutorial.cs fรถr vรฅr klass. Observera att filnamnet ska sluta med .cs fรถr att sรคkerstรคlla att den behandlas som en korrekt klassfil.
  2. Nรคr vi klickar pรฅ knappen Lรคgg till lรคggs klassen till i vรฅr lรถsning.

Om ovanstรฅende steg fรถljs fรฅr du utdata nedan i Visual Studio.
Produktion:-

Skapa en klass och ett objekt

En klass som heter Tutorial.cs kommer att lรคggas till i lรถsningen. Om du รถppnar filen hittar du nedanstรฅende kod lagt till klassfilen.

Skapa en klass och ett objekt

Code Fรถrklaring:-

  1. Den fรถrsta delen innehรฅller de obligatoriska modulerna som Visual Studio lรคgger till i alla .Net-filer. Dessa moduler krรคvs alltid fรถr att sรคkerstรคlla att alla .Net-program kรถrs i en Windows miljรถ.
  2. Den andra delen รคr klassen som lรคggs till i filen. Klassnamnet รคr "Tutorial" i vรฅrt fall. Detta รคr namnet som specificerades nรคr klassen lades till i lรถsningen.

Fรถr tillfรคllet gรถr vรฅr klassfil ingenting. I fรถljande รคmnen kommer vi att undersรถka mer detaljer om hur man arbetar med klassen.

Fรคlt och metoder

Vi har redan sett hur fรคlt och metoder definieras i klasser i det tidigare รคmnet.

Fรถr vรฅr handledningsklass kan vi ha fรถljande egenskaper.

  1. Handlednings-ID โ€“ Detta kommer att anvรคndas fรถr att lagra ett unikt nummer som skulle representera handledningen.
  2. Tutorial Name โ€“ Detta kommer att anvรคndas fรถr att lagra namnet pรฅ handledningen som en strรคng.

Vรฅr handledningsklass kan ocksรฅ ha de nedan nรคmnda metoderna.

  1. SetTutorial โ€“ Denna metod skulle anvรคndas fรถr att stรคlla in handledningens ID och namn.
  2. GetTutorial โ€“ Den hรคr metoden skulle anvรคndas fรถr att fรฅ information om en specifik handledning.

Lรฅt oss nu se hur vi kan infรถrliva fรคlt och metoder i vรฅr kod.

Steg 1) Det fรถrsta steget รคr att sรคkerstรคlla att klassen Tutorial har rรคtt fรคlt och metoder definierade. I det hรคr steget lรคgger vi till koden nedan i filen Tutorial.cs.

Fรคlt och metoder

Code Fรถrklaring:-

  1. Det fรถrsta steget รคr att lรคgga till fรคlten TutorialID och TutorialName till klassfilen. Eftersom TutorialID-fรคltet kommer att vara ett nummer, definierar vi det som ett heltal, medan TutorialName kommer att definieras som en strรคng.
  2. Dรคrefter definierar vi SetTutorial-metoden. Denna metod accepterar 2 parametrar. Sรฅ om Program.cs anropar SetTutorial-metoden, skulle den behรถva tillhandahรฅlla vรคrdena fรถr dessa parametrar. Dessa vรคrden kommer att anvรคndas fรถr att stรคlla in fรคlten fรถr sjรคlvstudieobjektet.
    1. Vรคrdet pรฅ pID skulle bli 1
    2. Vรคrdet pรฅ pName skulle vara .Net.
    3. I SetTutorial-metoden skulle dessa vรคrden sedan skickas till TutorialID och TutorialName.
    4. Sรฅ nu skulle TutorialID ha vรคrdet 1 och TutorialName skulle ha vรคrdet ".Net".
  3. Hรคr stรคller vi in โ€‹โ€‹fรคlten i klassen Tutorial till parametrarna i enlighet dรคrmed. Sรฅ vi stรคller in TutorialID till pID och TutorialName till Pname.
  4. Vi definierar sedan GetTutorial-metoden fรถr att returnera vรคrde av typen "String". Denna metod kommer att anvรคndas fรถr att returnera TutorialName till det anropande programmet. Pรฅ samma sรคtt kan du ocksรฅ fรฅ handlednings-id med metoden Int GetTutorial
  5. Hรคr returnerar vi vรคrdet fรถr fรคltet TutorialName till det anropande programmet.

Steg 2) Lรฅt oss nu lรคgga till kod till vรฅr Program.cs, som รคr vรฅr konsolapplikation. Konsolapplikationen kommer att anvรคndas fรถr att skapa ett objekt i "Tutorial-klassen" och anropa SetTutorial- och GetTutorial-metoderna i enlighet med detta.

(Anmรคrkningar:- Ett objekt รคr en instans av en klass vid varje given tidpunkt. Skillnaden mellan en klass och ett objekt รคr att objektet innehรฅller vรคrden fรถr egenskaperna.)

Fรคlt och metoder

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  int TutorialID; 
  string TutorialName;
  
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  public String GetTutorial()
  {
   return TutorialName;
  }
  
  static void Main(string[] args) 
  {
   Tutorial pTutor=new Tutorial();
    
   pTutor.SetTutorial(1,".Net");
    
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

Code Fรถrklaring:-

  1. Det fรถrsta steget รคr att skapa ett objekt fรถr klassen Tutorial. Markera hรคr att detta gรถrs genom att anvรคnda nyckelordet 'ny'. Nyckelordet 'nya' anvรคnds fรถr att skapa ett objekt frรฅn en klass i C#. Objektet tilldelas sedan till pTutor variabel.
  2. Metoden SetTutorial kallas dรฅ. Parametrarna fรถr 1 och ".Net" skickas till SetTutorial-metoden. Dessa kommer sedan att anvรคndas fรถr att stรคlla in fรคlten "TutorialID" och "TutorialName" fรถr klassen i enlighet med detta.
  3. Vi anvรคnder sedan GetTutorial-metoden i klassen Tutorial fรถr att fรฅ TutorialName. Detta visas sedan fรถr konsolen via metoden Console.WriteLine.

Om ovanstรฅende kod anges korrekt och programmet kรถrs kommer fรถljande utdata att visas.

Produktion:

Fรคlt och metoder

Frรฅn utgรฅngen kan du tydligt se att strรคngen ".Net" returnerades av metoden GetTutorial.

Vanliga frรฅgor

En konstruktor รคr en speciell metod som matchar klassnamnet och kรถrs automatiskt nรคr ett objekt skapas med new, och initierar dess fรคlt med startvรคrden.

Nyckelordet new skapar ett objekt frรฅn en klass. Det allokerar minne, anropar konstruktorn och returnerar en referens, som i handledningen pTutor = new Tutorial().

En klass รคr en referenstyp som lagras pรฅ heapen, medan en struct รคr en vรคrdetyp som kopieras vid tilldelning. Klasser stรถder arv, men det gรถr inte structs.

ร…tkomstmodifierare stรคller in medlemmars synlighet. public exponerar en medlem fรถr valfri kod, private begrรคnsar den till samma klass och protected delar den med hรคrledda klasser.

Ja. En klass รคr en ritning, sรฅ du kan skapa mรฅnga objekt med new. Varje objekt har sin egen kopia av fรคlten, keeping deras vรคrderingar oberoende.

Ett fรคlt lagrar data direkt i en klass. En egenskap omsluter ett fรคlt med get- och set-รฅtkomstfunktioner, vilket styr hur vรคrdet lรคses eller รคndras.

Ja. GitHub Copilot fรถreslรฅr klassdefinitioner, fรคlt, konstruktorer och metodkroppar frรฅn en kommentar eller ett klassnamn i Visual Studio och VS Code. RevSe var och en fรถr korrekta typer.

ML.NET modellerar in- och utdata som C#-klasser. Du definierar en klass vars egenskaper mappas till funktioner, laddar poster till objekt och trรคnar modeller frรฅn dem.

Sammanfatta detta inlรคgg med: