webForumDet fria alternativet

Storleken på en sträng

.NET

12 svar · 301 visningar · startad av Nickemannen

Medlem sedan aug. 20003 575 inlägg
Frågan#1

Hur får man ut storleken på en sträng ?

Medlem sedan aug. 20021 752 inlägg
#2

Menar du längden?? Då finns det ett attrebut som heter Length.

/Viktor

Medlem sedan aug. 20003 575 inlägg
#3

Hur får man ut storleken på en sträng ?

Nej, jag menar i bytes

Medlem sedan aug. 20021 752 inlägg
#4

Google: how to get the size of an object in memory?, kanske hittar svaret där.

/Viktor

Medlem sedan aug. 20003 575 inlägg
#5

Det var i C++. Inte i .NET

Medlem sedan mars 20023 561 inlägg
#6

You can use the sizeof operator in C# aswell - only from unmanaged code
though :o)

To get detailed information have a look at the Visual C# Language Reference
in the help documentaion under "Operator Keywords"

Medlem sedan apr. 20012 266 inlägg
#7

Length är antalet tecken och varje tecken består av en byte så borde alltså inte length visa antalet bytes?.

Medlem sedan juni 2002151 inlägg
#8

varje tecken är ju mer än en byte nuförtiden.

Medlem sedan apr. 20012 266 inlägg
#9

låter dumt =)
iof kanske bara är ASCII som är som jag sa

Medlem sedan aug. 20021 752 inlägg
#10

Du har även lite overhead på objektet, kanske en räknare som vet hur många teckan som finns, och lite annat.

/Viktor

Medlem sedan aug. 20003 575 inlägg
#11

Jo, men jag hittar inget med det citatet. Josef

Medlem sedan juni 20022 599 inlägg
#12

Nickemannen skrev:

Jo, men jag hittar inget med det citatet. Josef

sizeof används på typer och inte på allokerat minne. Såvitt jag vet så har en sträng i .NET 2 bytes per tecken. Så antalet bytes blir (2*Strängen.Length).

Men sen beror det lite på vad man menar. Eventuellt tillkommer "overhead" (som Viktor säger). En sträng i "gammal" VB (BSTR) har tex också två bytes per tecken men sen tillkommer även 4 bytes som talar om hur lång strängen är + två bytes med slutnollor.

Men vad du är intresserad av är väl antalet bytes som används till tecken och inte hur mycket minne som egentligen används.

Medlem sedan aug. 20003 575 inlägg
#13

Ja, det är sant jag är bara intresserad av hur stor min sträng är i C# och inte i minnet. tack så mycket.

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)