Hur får man ut storleken på en sträng ?
Storleken på en sträng
12 svar · 301 visningar · startad av Nickemannen
Det var i C++. Inte i .NET
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"
Length är antalet tecken och varje tecken består av en byte så borde alltså inte length visa antalet bytes?.
varje tecken är ju mer än en byte nuförtiden.
låter dumt =)
iof kanske bara är ASCII som är som jag sa
Du har även lite overhead på objektet, kanske en räknare som vet hur många teckan som finns, och lite annat.
/Viktor
Jo, men jag hittar inget med det citatet. Josef
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.
Ja, det är sant jag är bara intresserad av hur stor min sträng är i C# och inte i minnet. tack så mycket.