Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

C# - Klasser

Postad 2006-09-01 av Andreas Petersson i sektionen ASP.NET, C#, Okategoriserat med 1 Kommentarer | Läst av: 10478, Betyg: 92%

Förord

Denna artikel beskriver grundläggande begrepp för att skapa klasser i C#.
Innehåll
  » Om klasser
  » En första klass
  » Properties
  » Methods
  » Constructor


Om klasser


Det första du måste inse när du skapar en klass är att du inte använder dig utav namnet som du ger klassen, utan du använder dig utav klassen för att skapa något som kallas för ett objekt. Du kan se det som att du använder dig utav int för att skapa en integer-variabel. Det finns ett undantag och det är om du använder dig utav "static", detta tar jag upp i en senare del.

Ett exempel kan vara om du vill beskriva olika människor. Alla människor har ju samma variabler. Det kan vara längd, vikt, ålder och arbete. Om du då vill göra ett program som hanterar flera människor samtidigt kan du göra en klass som beskriver en person och sedan skapa flera olika objekt (personer) som hänvisar till din klass.

I denna artikel kommer jag förklara de mest grundläggande begreppen för att skapa en enkel klass:

1. Propertities
2. Methods
3. Constructor

När du lärt dig dessa begrepp är du redo att komma igång och skapa dina första klasser.


En första klass


För att komma igång tjuvstartar vi lite genom att skapa en första klass.


public class Person
{
private int lenght;
private decimal weight;
private int age;
private string name;
private string imageUrl;
}


Här har jag skapat en klass med fem olika variabler som jag gett namnet ”Person”.

Samtliga variabler är private vilket betyder att man enbart kan komma åt variablerna med koden inne i klassen.

Nu när du gjort din första klass vill du självklart skapa ett objekt som använder sig utav klassen. Det gör du genom att skriva följande kod.


Person myPerson = new Person();


För att sedan ta bort din variabel skriver du följande:


myPerson = null;


Detta behöver du i princip inte inte göra, då .net automatiskt tar bort den då den inte används längre. Annars försvinner den då ditt program avslutas. Det kan dock alltid vara snyggt att göra.

När du namnger dina variabler så ska du tänka på om den är public eller private. Om den är private börjar du med liten bokstav och om det är public börjar du med stor bokstav. Om du kollar på min klass ovan förstår du vad jag menar om det skulle vara oklart.
C# tar hänsyn till om du har stora eller små bokstäver i ett namn, den ser t.ex. andreas och Andreas som två skilda variabler.



Properties


Eftersom jag har satt mina variabler till private har jag ingen möjlighet att ändra på dom. Hur ska jag då gå till väga för att ändra på mina variabler funderar du säkert på nu, svaret är kanske inte helt oväntat properties.

Alternativet till properties är att sätta variablerna till public, då du kan ändra på variabeln utanför klassen utan att använda properties.
Detta är dock ett fult sätt att sköta det på och kan leda till problem du inte väntat dig. Du kanske vill att du enbart ska kunna hämta ett värde från din klass och inte kunna skriva till variabeln. Att då använda sig utav public kan definitivt innebära problem då du även ges tillstånd att skriva till variabeln.

Två huvudbegrepp inom properties är get och set. Precis som namnen antyder använder du dig utav get när du vill få ut ett värde ur din klass och du använder dig utav set när du vill ge en variabel ett värde. Följande kodsnutt förklarar hur detta ser ut:


public class Person
{
private int lenght;
private decimal weight;
private int age;
private string name;
private string imageUrl;

public int Lenght
{
get
{
return lenght;
}
set
{
lenght = value;
}
}
}


I detta fallet kan man både skriva till variabeln och läsa den. Om du enbart vill att man ska kunna skriva till den kan du helt enkelt ta bort ”get”.

Notera att variablera Lenght och lenght inte ses som samma variabel så den ena är publik och börjar med stor bokstav. Var därför noga med vilka variabler du skickar värden till!

Efter att du har skapat din klass använder du den på följande sätt i din klass:


Person myPerson = new Person();
myPerson.lenght = 187;





Methods


Det är helt enkelt en funktion som ni placerar inuti en klass.


public class Person
{

// Borttagen kod för att göra det hela tydligare.

public decimal GetBMI()
{
private decimal bmi;
bmi = lengt*length;
bmi = weight/ bmi;
bmi = bmi/100;
return bmi;
}
}


Jag tror det är så man räknar ut bmi, i vilket fall som helst så förstår ni hur methods fungerar ;)

Sedan använder ni koden som ni säkert misstänkt:


bmi = myPerson.GetBMI();


Du använder alltså det precis som en vanlig function, som du säkert tidigare arbetat med oavsett vilket språk du tidigare använt. Om inte annat har du säkert konstruerat funktioner innan du kom så långt att du vill kolla hur klasser fungerar.



Constructor


En construktor används när du initierar ditt nya objekt för att lägga in värden du redan vet att den kommer innehålla. Det kan ju vara så att du faktiskt redan vet namnet på personen som du ska skapa ett nytt objekt för.

För att skapa detta använder du följande kod:


public class Person
{
// Borttagen kod för enkelhetens skull.

public Person(string name)
{
this.name = name;
}
}


Du ger alltså värderna i klassen ett värde genom att börja med ”this.*”.
Tänkt också på att använda samma namn som du har på din klass ;).

När du sedan ska lägga till din nya person använder du dig utav följande kod:


Person myPerson = new Person(”Andreas Petersson”);


I .NET kan du använda flera olika constructors med samma namn och olika uppsättningar utav variabler. Du kan därefter välja den version som passar dig bäst för tillfället, men du måste dock använda en constructor ifall du skapat en! Om du inte gör det får du ett felmedelande.

Du kan använda dig utav följande kod:


public class Person
{
// Borttagen kod för enkelhetens skull.

public Person(string name)
{
this.name = name;
}

public Person(int age)
{
this.age = age;
}
}


Sedan använder sig din klass av någon av dessa constructors, beroende på om det är en string eller en int du skickar in i början.
Upp

1 Kommentarer


  1. ----- -----
    5 nov 2008

    ...som gärna delar med sig av sina kunskaper, och lägger ner tid och arbete på att göra det, skall man respektera.

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
969
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies