A lexikális elemekre ugyanazok a szabályok vonatkoznak, mint a C++ nyelvben, kivéve az alábbi bővítéseket:
Kulcsszó használata azonosítóként. Előfordulhat, hogy egy másik nyelven megírt azonosítóra kell hivatkoznunk a kódban, és ez az azonosító történetesen megegyezik a nyelv valamelyik kulcsszavával. Ilyen esetekben az __identifier kulcsszóval jelezhetjük a fordítónak, hogy az argumentumában szereplő lexikális elem nem kulcsszó, hanem azonosító.
Az alábbi példában egy operator nevű osztályt példányosítunk, amely az operator.dll könyvtárban van megvalósítva:
Karakterláncok. A nyelvben többféle sztringliterál létezik. A hagyományoson kívül:
Az ANSI (prefix nélkül) és a UNICODE (L prefixszel) sztring már ismerős lehet, a .NET (S prefixszel) sztringek újak, jobb teljesítményt nyújtanaka hagyományos C++ sztringliteráloknál. A teljesen megegyező karakterláncok példányai ugyanarra a sztring objektumra mutatnak. (Megjegyzés: a hagyományos C++ fordítók is gyakran élnek ezzel az optimalizációs lehetőséggel, de a szabvány nem írja elő.) A következő példa szemlélteti az előbb elmondottakat:
A futtatás eredménye:
Fontos tulajdonság: C++ sztringeket bárhol használhatunk ott ahol .NET sztringeket használnánk, de ez fordítva nem igaz.
Vegyük észre, hogy a fenti kódban használtuk a printf parancsot. Pusztán azért mert .NET típusokat és metódusokat használunk, nem kell lemondanunk a hagyományos felügyeletlen könyvtárakról.