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 / Forum översikt / inlägg

Posta nytt inlägg


Kodstandard _ eller this?

Postades av 2008-08-17 10:55:42 - Niclas Pehrsson, i forum systemutveckling generellt, Tråden har 7 Kommentarer och lästs av 1688 personer

Hej detta är en helt onödig fråga och en smaksaksfråga men jag är intresserad.

Detta gäller för medlemsvariabler i en klass.

När jag provade ReSharper för något år sedan så ville den ta bort alla "this." eftersom det var rendundant och jag körde med _ för att visa att det var en medlemsvariabel detta körde jag med fram till någon månad sedan då jag testade Microsoft Source Analysis (ett liknande verktyg av Code Analysis fast denna kontrollerar formateringen av koden samt kommenteringen). Microsoft Source Analysis vill att man har this. innan globala variabler och när man anropar metoder inom klassen.

private string name;

Skall anropas:
alt1 this.name =
alt2 _name =

alt1 this.DoJob();
alt2 DoJob();

En annan fråga har this något med prestandan att göra? Jag antar inte det, men har den det?

Jag tror jag gillar this.name och this.DoJob(); eftersom då blir det ett konsekvent sätt att fort se när man kodgranskar aha den här variabeln eller den här metoden finns inuti klassen. Jag har visserligen sätt varianter av _DoJob(); som visar att metoden är inom klassen men det är jättefult tycker jag.


Svara

Sv: Kodstandard _ eller this?

Postades av 2008-08-17 11:15:06 - Martin Adrian

"this. innan globala variabler".

är en motsägelse eftersom globala variabler inte tillhör någon instans.

I C# kan bara medlemmar i klassen (eller i en basklass) anropas så alla anrop är ju inom klassen.

Vet inte om det är en uttalad guide men prefixet "_" brukar användas på fält som inte skall användas direkt för att det finns en property.

dvs:
Ta bort alla "this". Det tillför inget.
Använd _ för medlemsvariabler som inte skall användas direkt.
Några brukar använda ett prefix på alla medlemsvariabler (t.ex. m eller m_) för att skilja dem från argument i koden.

private string mVar1;
public void fund(string var2) {
mVar1 = var2;
}


Svara

Sv:Kodstandard _ eller this?

Postades av 2008-08-17 11:21:45 - Niclas Pehrsson

this. bör väl kunna medföra minst lika mycket som _ och m,
Läser jag koden och ser

this.name eller _name så antar jag att båda är medlemsvariabler. Dock kan det vara lite farligt om någon döper sin lokala variabel till _något.
Och det jag menade med att om man kör med this. så kan man även använda det på metoder för att tydligt flaggar här anropar jag en medlemsmetod.

m dock varnar ju t.ex. Code analysis för eftersom den anser att hungarian notation inte är något vi bör använda.

Läser jag koden och


Svara

Sv: Kodstandard _ eller this?

Postades av 2008-08-17 16:04:46 - Johan Normén

Jag personligen kör med _ för medlemsvariabler, mkt för att många av MS exempel och genererade kod för så för att hålla samma guideline som dem för att underlätta för andra. Dvs varför ha olika notations dialekter och inte köra med en gemensam?

this. använde jag mkt i börjen men slutade med pga _ dock önskade jag att MS la till en färg på dessa i VS .Net... Att jag har _ är för att snabbt förstå att här i min kod använder jag en medlemsvariabel. Men hade man haft en färg på dem så hade det ökat läsbarheten ännumera och man hade kunnat slippa _ så vida andra IDE kör färgkod på dem oxå. Återstår o se om detta kommer häna i VS .Net, skicka in en post till MS om detta och fick svar, bra idé... Men sen såg jag inte så mkt mer av det. :-( och i VS .net 2008 kom det inte med. Trist.

Mvh Johan


Svara

Sv: Kodstandard _ eller this?

Postades av 2008-08-17 20:07:15 - Fredrik Malmström

Själv föredrar jag detta när jag skriver i C#

private string _var1;
public void MethodName(string str) { 
  _var1 = str; 
}


Sitter jag med VB, blir det följande

Private string StrVar1
Public Sub MethodName(ByVal pStr As String)
  StrVar1 = pStr; 
End Sub

Enda gångerna jag använder mig av this eller Me är när jag anropar properties inom klassen. Av någon orgundlig anledning. :)


Svara

Sv:Kodstandard _ eller this?

Postades av 2008-08-18 00:21:17 - Johan Normén

Fredrik,

varför hungarian notation i VB? Det är ju rätt onödigt och inte så snyggt alltid heller.
Hungarian notation kan mer eller mindre passa dynamiska språk för att tydliggöra varianter dock har vi ju så bra IDE idag att en mus over visar typen, samt bra namngivelser förklarar för oss vad det är för typ.

name är oftast inte int.
number är oftast inte string etc...

_ är to m mer vanligt i VB än C# bara för att VB inte är case sensative medans C# är det.
Dvs man kan ha lokala members som name och sen prperties med samma namn med stor pokstav. Name. I VB la man till _ på name för att just lösa detta problem på ett annat sätt men utan att behöva den onödiga hungarian notationbeskrivningen dvs. str, int etc framför en variabel namn.

Mvh Johan


Svara

Sv: Kodstandard _ eller this?

Postades av 2008-08-19 08:20:09 - Fredrik Malmström

Johan,

Det är en skada som ligger kvar sedan ASP 3.0 tiden, då satt jag i notepad resp. crimson editor och skrev, där hade man inget sådant lyx. :) Dock sitter jag än idag kvar med lite ASP 3.0-system som arbetsgivarna inte riktigt har planer på att göra om till .NET. Inte än i alla fall.

Så Johan, du får helt enkelt komma och slå mig på fingrarna när jag skriver med hungarian notation :D


Svara

Sv:Kodstandard _ eller this?

Postades av 2008-08-19 19:07:01 - Johan Normén

haha mm pisk skall du ha ;-)


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 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

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 614
27 953
271 709
353
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