zoukankan      html  css  js  c++  java
  • c#中@标志的作用

    参考微软官方文档-特殊字符@,地址 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/tokens/verbatim

    1、在变量名前加@,可以告诉编译器,@后的就是变量名。主要用于变量名和C#关键字重复时使用。

    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!

    2、在字符串前加@,字符串中的转义字符串将不再转义。例外:""仍将转义为",{{和}}仍将转义为{和}。在同时使用字符串内插和逐字字符串时,$要在@的前面

    string filename1 = @"c:documentsfilesu0066.txt";
    string filename2 = "c:\documents\files\u0066.txt";
    
    Console.WriteLine(filename1);
    Console.WriteLine(filename2);
    // The example displays the following output:
    //     c:documentsfilesu0066.txt
    //     c:documentsfilesu0066.txt

    3、类似于第一条,用于在命名冲突时区分两个特性名。特性Attribute自定义的类型名称在起名时应以Attribute结尾,例如InfoAttribute,之后我们可以用InfoAttribute或Info来引用它。但是如果我们定义了两个自定义特性,分别命名Info和InfoAttribute,则在使用Info这个名字时,编译器就不知道是哪个了。这时,如果想用Info,就用@Info,想用InfoAttribute,就把名字写全。

    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'. Specify the full name 'InfoAttribute' to select it.
    public class Example
    {
       [InfoAttribute("The entry point.")]
       public static void Main()
       {
       }
    }
  • 相关阅读:
    关于IE缓存的解决方案(HTML,JSP,ASP,PHP,C#)(转)
    ASP.NET 2.0 中的客户端脚本
    Post和Get的区别(兼谈页面间传值的方式)(转)
    委托的小例子
    JS的正则表达式
    HTTP消息头
    asp.net一个onclick的全过程(简单写一下)
    location.reload() 和 location.replace()的区别和应用
    使用 .NET Framework 2.0 在您的应用程序中支持证书(转)
    页面动态注册脚本(小技巧)
  • 原文地址:https://www.cnblogs.com/zhaochenxi/p/10570482.html
Copyright © 2011-2022 走看看