Szó szerinti szöveg – @
változókban, attribútumokban és sztringkonstansokban
A @
speciális karakter szó szerinti azonosítóként szolgál. A következő módokon használható:
A sztringkonstans szó szerinti értelmezésének jelzése. A
@
jelen példány karaktere egy szó szerinti sztringkonstanst határoz meg. A rendszer szó szerint értelmezi az egyszerű menekülési sorozatokat (például"\\"
fordított perjelekhez), a hexadecimális menekülési sorozatokat (például"\x0041"
nagybetűs A esetén) és a Unicode-feloldósorozatokat (például"\u0041"
nagybetűs A esetén). Csak az idézőjelek feloldási sorozatát (""
) nem értelmezi szó szerint; egy dupla idézőjelet hoz létre. Emellett szó szerint interpolált sztringkapcsos zárójelek esetén a feloldósorozatok ({{
és}}
) nem szó szerint értelmezve vannak; egyetlen zárójelkaraktert hoznak létre. Az alábbi példa két azonos fájlelérési utat határoz meg, az egyiket egy normál sztringkonstans, a másikat pedig egy szó szerinti sztringkonstans használatával. Ez a szó szerinti sztringkonstansok egyik leggyakoribb felhasználási módja.string filename1 = @"c:\documents\files\u0066.txt"; string filename2 = "c:\\documents\\files\\u0066.txt"; Console.WriteLine(filename1); Console.WriteLine(filename2); // The example displays the following output: // c:\documents\files\u0066.txt // c:\documents\files\u0066.txt
Az alábbi példa egy reguláris sztringkonstans és egy azonos karaktersorozatokat tartalmazó szó szerinti sztringkonstans definiálásának hatását mutatja be.
string s1 = "He said, \"This is the last \u0063hance\x0021\""; string s2 = @"He said, ""This is the last \u0063hance\x0021"""; Console.WriteLine(s1); Console.WriteLine(s2); // The example displays the following output: // He said, "This is the last chance!" // He said, "This is the last \u0063hance\x0021"
C#-kulcsszavak használata azonosítóként. A
@
karakter előtagja egy kódelem, amelyet a fordító a C# kulcsszó helyett azonosítóként értelmez. Az alábbi példa egy ciklusban használt azonosítófor
definiálásához használja a@
karaktertfor
.string[] @for = { "John", "James", "Joan", "Jamie" }; for (int ctr = 0; ctr < @for.Length; ctr++) { Console.WriteLine($"Here is your gift, {@for[ctr]}!"); } // The example displays the following output: // Here is your gift, John! // Here is your gift, James! // Here is your gift, Joan! // Here is your gift, Jamie!
Annak engedélyezése, hogy a fordító különbséget tudjon tenni az attribútumok között elnevezési ütközés esetén. Az attribútum egy osztály, amely a forrásból Attributeszármazik. A típusnév általában tartalmazza az attribútum utótagot, bár a fordító nem kényszeríti ezt a konvenciót. Az attribútum ezután a kódban teljes típusnévvel (például
[InfoAttribute]
rövidített nevével( például[Info]
) hivatkozható. Az elnevezési ütközés azonban akkor fordul elő, ha két rövidített attribútumtípus neve azonos, és az egyik típusnév tartalmazza az Attribútum utótagot, a másik pedig nem. A következő kód például nem fordítható le, mert a fordító nem tudja megállapítani, hogy a program alkalmazza-e azInfo
InfoAttribute
attribútumot azExample
osztályra. További információ: CS1614.using System; [AttributeUsage(AttributeTargets.Class)] public class Info : Attribute { private string information; public Info(string info) { information = info; } } [AttributeUsage(AttributeTargets.Method)] public class InfoAttribute : Attribute { private string information; public InfoAttribute(string info) { information = info; } } [Info("A simple executable.")] // Generates compiler error CS1614. Ambiguous Info and InfoAttribute. // Prepend '@' to select 'Info' ([@Info("A simple executable.")]). Specify the full name 'InfoAttribute' to select it. public class Example { [InfoAttribute("The entry point.")] public static void Main() { } }
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: