mboost-dp1
Java vs. C# (Sprogmæssigt)
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Set fra et rent sprogmæssig synspunkt, hvor vi ignorer hvilke platforme softwaren kan køres på, så vil jeg gerne sammenligne C# med Java.
Fordi efter at have kodet i begge dele i nogle år, kan jeg skrive lange lister over mangler og problemer med Java.
Men jeg tænker at der må være nogle ting som Java kan, som C# ikke kan.
Er der nogen der kan give eksempler på sådanne?
Kun for de seneste brugbare versioner, altså Java 1.6 versus C# 3.5.
(Også, C# 4.0 er snart klar, Java 7 roadmap ?!?!?!)
Fordi efter at have kodet i begge dele i nogle år, kan jeg skrive lange lister over mangler og problemer med Java.
Men jeg tænker at der må være nogle ting som Java kan, som C# ikke kan.
Er der nogen der kan give eksempler på sådanne?
Kun for de seneste brugbare versioner, altså Java 1.6 versus C# 3.5.
(Også, C# 4.0 er snart klar, Java 7 roadmap ?!?!?!)
#1
C# er et betydeligt større sprog end Java og er langt hen af vejen et superset af Java, så der er ikke specielt mange sprog features som Java har men C# ikke har.
Jeg kan umiddelbart kun tænke på:
- checked exceptions
- strictfp
- synchronized på methods
- static import
- inner classes og anonymous inner classes [C# har anden funktionalitet som løser samme opgave]
- transient [.NET library leverer samme funktionalitet på library level]
- fallthrough switch cases [jeg vil være tilbøjelig til at kalde det en fejl fremfor en feature, men det er anderledes]
Endvidere er Java enums meget anderledes end C# enums og burde nok på listen.
Ikke nogen speciel lang liste. Listen over hvad C# har sprog mæssigt som Java ikke har vil være meget længere.
C# er et betydeligt større sprog end Java og er langt hen af vejen et superset af Java, så der er ikke specielt mange sprog features som Java har men C# ikke har.
Jeg kan umiddelbart kun tænke på:
- checked exceptions
- strictfp
- synchronized på methods
- static import
- inner classes og anonymous inner classes [C# har anden funktionalitet som løser samme opgave]
- transient [.NET library leverer samme funktionalitet på library level]
- fallthrough switch cases [jeg vil være tilbøjelig til at kalde det en fejl fremfor en feature, men det er anderledes]
Endvidere er Java enums meget anderledes end C# enums og burde nok på listen.
Ikke nogen speciel lang liste. Listen over hvad C# har sprog mæssigt som Java ikke har vil være meget længere.
Windcape (1) skrev:Set fra et rent sprogmæssig synspunkt, hvor vi ignorer hvilke platforme softwaren kan køres på, så vil jeg gerne sammenligne C# med Java.
Udover sprog features og platform/levrandør aspektet så er der et tredie område, hvor der er store forskelle nemlig biblioteket.
Windcape (1) skrev:Kun for de seneste brugbare versioner, altså Java 1.6 versus C# 3.5.
C# 3.5 eksisterer ikke og kommer heller aldrig til at eksistere.
C# versionerne går 2.0 -> 3.0 -> 4.0 (hvor C# 3.0 kom sammen med .NET 3.5 mens der ikek kom ny C# version sammen med .NET 3.0).
ups, ja, det var en smutter med versionnummeret. Ellers en god liste af ting, nogle af dem kender jeg ihvertfald ikke til endnu.
Er funktionaliteten bag dette ikke cirka det samme som lock() i C# ?
Dvs. det svarer til [NonSerialized] attributten i C# ?
- synchronized på methods
Er funktionaliteten bag dette ikke cirka det samme som lock() i C# ?
transient
Dvs. det svarer til [NonSerialized] attributten i C# ?
Windcape (5) skrev:Er funktionaliteten bag dette ikke cirka det samme som lock() i C# ?
Java:
public void m() {
synchronized(o) {
...
}
}
og C#:
public void M()
{
lock(o)
{
...
}
}
gør det samme, men Java tillader:
public synchronized void m() {
...
}
hvor den ved ikke static metode låser på this og ved static metoder låser på class objektet.
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.