Avatar billede mach3 Nybegynder
30. januar 2005 - 16:27 Der er 7 kommentarer og
1 løsning

string vs String: forskel?

hej,

i VS.NET 2003 kan man skrive string og man kan skrive String (stort s). det er C#.

det første bliver genkendt som et reserveret ord, det gør det andet ikke (det bliver ikke blåt).

men er der nogen forskel om man anvender det ene eller det andet?
Avatar billede arne_v Ekspert
30. januar 2005 - 16:30 #1
ingen
Avatar billede arne_v Ekspert
30. januar 2005 - 16:30 #2
string = C# streng
String = .NET streng

og de er det samme
Avatar billede mach3 Nybegynder
30. januar 2005 - 18:18 #3
ok. tak. skulle lige have det bekræftet.

>>
string = C# streng
String = .NET streng

er det derfor den ene bliver genkendt af VS.NET og det gør den anden ikke?
Avatar billede arne_v Ekspert
30. januar 2005 - 18:20 #4
Ja.

string er en indbygget type og dermed et reserveret ord i C# sproget.

String er en klasse i .NET frameworket i namespacet System.

Og selvom det er det samme, så skal det nok giver forskellig colour coding.
Avatar billede mach3 Nybegynder
30. januar 2005 - 18:22 #5
ok jeg synes det ser pænere ud når det er blå :o)

hvilken plejer du at bruge? og giv et svar.
Avatar billede arne_v Ekspert
30. januar 2005 - 18:24 #6
string
Avatar billede arne_v Ekspert
30. januar 2005 - 18:24 #7
og svar
Avatar billede cms Nybegynder
30. januar 2005 - 21:02 #8
Der gælder i øvrigt det samme for en række andre indbyggede data types, fx string = System.String, int = System.Int32, double = System.Double, float = System.Float.
Der er dog en række syntaktiske forskelle på brug af string og String i en cast-expression.
Følgende er taget fra C# Language Specification stk. 7.6.6 Cast Expressions:

From the disambiguation rule it follows that, if x and y are identifiers, (x)y, (x)(y), and (x)(-y) are cast-expressions, but (x)-y is not, even if x identifies a type. However, if x is a keyword that identifies a predefined type (such as int), then all four forms are cast-expressions (because such a keyword could not possibly be an expression by itself).


Hele teksten:

A cast-expression is used to explicitly convert an expression to a given type.

cast-expression:
(  type  )  unary-expression
A cast-expression of the form (T)E, where T is a type and E is a unary-expression, performs an explicit conversion (Section 6.2) of the value of E to type T. If no explicit conversion exists from the type of E to T, a compile-time error occurs. Otherwise, the result is the value produced by the explicit conversion. The result is always classified as a value, even if E denotes a variable.

The grammar for a cast-expression leads to certain syntactic ambiguities. For example, the expression (x)–y could either be interpreted as a cast-expression (a cast of –y to type x) or as an additive-expression combined with a parenthesized-expression (which computes the value x – y).

To resolve cast-expression ambiguities, the following rule exists: A sequence of one or more tokens (Section 2.4) enclosed in parentheses is considered the start of a cast-expression only if at least one of the following are true:

The sequence of tokens is correct grammar for a type, but not for an expression.
The sequence of tokens is correct grammar for a type, and the token immediately following the closing parentheses is the token "~", the token "!", the token "(", an identifier (Section 2.4.1), a literal (Section 2.4.4), or any keyword (Section 2.4.3) except as and is.
The term "correct grammar" above means only that the sequence of tokens must conform to the particular grammatical production. It specifically does not consider the actual meaning of any constituent identifiers. For example, if x and y are identifiers, then x.y is correct grammar for a type, even if x.y doesn't actually denote a type.

From the disambiguation rule it follows that, if x and y are identifiers, (x)y, (x)(y), and (x)(-y) are cast-expressions, but (x)-y is not, even if x identifies a type. However, if x is a keyword that identifies a predefined type (such as int), then all four forms are cast-expressions (because such a keyword could not possibly be an expression by itself).
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester