Jag sitter med ett väldigt simpelt exempel. Man skriver in en sträng i konsolen som jag sedan kör en trim() på och därefter skriver ut till konsolen igen. Borde inte följande sträng "Hej" resultera till "H e j"?
using System;
namespace Plump.cSharp {
class StringTest {
static void Main(string[] args) {
Console.WriteLine("Type in a string");
string input = Console.ReadLine();
input = input.Trim();
Console.WriteLine("The string was " + input);
Console.ReadLine();
}
}
}
Fråga 2
I java skriver man exempelvis följande när man skapar en sträng:
String blaha = "Hej";
I C# skriver man string blaha = "Hej"; Varför denna skillnande med litet respektive stort S på string?
Fråga 2
I java skriver man exempelvis följande när man skapar en sträng:
String blaha = "Hej";
I C# skriver man string blaha = "Hej"; Varför denna skillnande med litet respektive stort S på string?
Ja, varför inte? C# är inte Java, så MS kunde göra som de ville. I själva verket är "string" bara ett alias. Typen heter "System.String" och man kan använda den benämningen om man vill. Jag kan tänka mig att MS vill avdramatisera strängar lite, genom att få dem att se ut som vanliga primitiva typer.
Men du tilldelar aldrig s något annat än "erik" så det är väl inte så konstigt? k ger du först värdet "erik" för att sedan ge det värdet "kalle". Förstår inte vad som är konstigt så du får gärna förtydliga om du orkar ;)
Men du tilldelar aldrig s något annat än "erik" så det är väl inte så konstigt? k ger du först värdet "erik" för att sedan ge det värdet "kalle". Förstår inte vad som är konstigt så du får gärna förtydliga om du orkar ;)
Man brukar göra skillnad på två olika typer av allokering, på "heapen" och på "stacken". När du lägger något på stacken så blir det i stil med:
Int i = 10; // i = 10
Int j = i; // j = 10
j = 20; // j = 20 och i = 10
Medan
ArrayList l1 = new ArrayList();
ArrayList l2= new ArrayList();
l1.add("hej");
l2 = l1;
l2.add("hej2);
// Om man kontrollerar så ser man att l1 och l2 innehåller samma värden, "hej" och "hej2".
Dessa typer kallas för referensetyper.
Trots vad man kan tro om String klassen så är den en referenstyp, detta innebär att man kan behöva använda någon annan klass (StringBuilder) om man arbetar mycket med stränghantering i något program.