C#中的关键字@

C#中的@关键字

@作为C#中的特殊字符,在Microsoft文档中定义为Verbatim文本

Verbatim的解释为完全一致或者逐字逐句,例如verbatim 地引用了一段文字:

“The researcher stated verbatim: ‘The results indicate a significant correlation between variables.’”

有三种主要的应用场景

1.定义Verbatim字符串文本

string filename1 = @"c:\documents\files\u0066.txt";
string filename2 = "c:\\documents\\files\\u0066.txt";Console.WriteLine(filename1);
Console.WriteLine(filename2);
//输出结果:
//     c:\documents\files\u0066.txt
//     c:\documents\files\u0066.txt

注意:

  • 使用插值字符串时,{}会优先被$解析
string s = "World";
Console.WriteLine($@"Hello, {s}!");
//输出结果
//Hello, World!

不使用$:

string s = "World";
Console.WriteLine(@"Hello, {s}!");
//输出结果
//Hello, {s}!
  • 在Verbatim字符串使用",需要使用两个引号,单个使用会解释为字符串结束
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);
// 输出结果:
//     He said, "This is the last chance!"
//     He said, "This is the last \u0063hance\x0021"

2.使用C#中的同名关键字作为标识符

例如,使用for作为数组名称

string[] @for = { "John", "James", "Joan", "Jamie" };
for (int ctr = 0; ctr < @for.Length; ctr++)
{Console.WriteLine($"Here is your gift, {@for[ctr]}!");
}
//输出结果:
//     Here is your gift, John!
//     Here is your gift, James!
//     Here is your gift, Joan!
//     Here is your gift, Jamie!

3.解决属性冲突

属性是从 Attribute 派生的类。其类型名称通常包含后缀 Attribute,尽管编译器不强制实施此约定。然后,可以在代码中通过其完整类型名称(例如 [InfoAttribute]或其缩写名称(例如 [Info])引用该属性。但是,如果两个缩短的属性类型名称相同,并且一个类型名称包含 Attribute 后缀,而另一个类型名称不包含,则会发生命名冲突。

例如,下面的代码无法编译,因为编译器无法确定 InfoInfoAttribute 属性是否应用于 Example 类。

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.")] // 编译错误CS1614. Ambiguous Info and InfoAttribute.
//正确写法:使用Info属性 [@Info("A simple executable.")] .使用InfoAttribute属性 [@Info("A simple executable.")]
public class Example
{[InfoAttribute("The entry point.")]public static void Main(){}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/888052.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记一次golang项目context引发的OOM故障

之前写过一篇一种基于etcd实践节点自动故障转移的思路, 程序经历过一次线上进程内存持续上涨终OOOM的小事故, 本次技术复盘导致本次内存泄露的完整起因。 提炼代码: 业务函数etcdWatchLoop: 基于etcd的Watch机制持续监听/foo前缀键值对的变更; 收到Watch信道的变更消息,就…

R语言LCMM多维度潜在类别模型流行病学研究:LCA、MM方法分析纵向数据

全文代码数据:https://tecdat.cn/?p=39710 原文出处:拓端数据部落公众号 在数据分析领域,当我们面对一组数据时,通常会有已知的分组情况,比如不同的治疗组、性别组或种族组等。然而,数据中还可能存在未被观测到的分组,例如素食者与非素食者、经常锻炼者与不锻炼者,或…

TensorFlow域对抗训练DANN神经网络分析MNIST与Blobs数据集梯度反转层提升目标域适应能力可视化

全文链接:https://tecdat.cn/?p=39656 原文出处:拓端数据部落公众号 本文围绕基于TensorFlow实现的神经网络对抗训练域适应方法展开研究。详细介绍了梯度反转层的原理与实现,通过MNIST和Blobs等数据集进行实验,对比了不同训练方式(仅源域训练、域对抗训练等)下的分类性能…

【专题】2025年我国机器人产业发展形势展望:人形机器人量产及商业化关键挑战报告汇总PDF洞察(附原数据表)

原文链接:https://tecdat.cn/?p=39668 机器人已广泛融入我们生活的方方面面。在工业领域,它们宛如不知疲倦的工匠,精准地完成打磨、焊接等精细工作,极大提升了生产效率和产品质量;在日常生活里,它们是贴心的助手,扫地机器人默默清扫房间,陪伴机器人给予老人孩子温暖陪…

vba主动着色

原来的条件格式效率太低,改为主动方式着色 Sub SetColor() On Error Resume Next Dim hang As Integer 行数 Dim lie As Integer Dim IsBuy As Boolean Dim IsSell As Boolean hang = ActiveSheet.UsedRange.Rows.Count With ActiveSheet …

2025省选模拟13

2025省选模拟13\(T1\) P1025. Easy Problem \(40pts\)部分分\(40pts\)设 \(f_{i,j}\) 表示 \(p_{3j}=i\) 时 \([1,i]\) 对答案的贡献,状态转移方程为 \(f_{i,j}=\max\limits_{k=3(j-1)}^{i-3} \{ f_{k,j-1}+w(k+1,i) \}\) ,其中 \(w(k+1,i)\) 表示 \([k+1,i]\) 的次大值。 设…

installerX还你一个清爽的安装

相信大家都有被手机自带的软件安装器折磨的情况,各种禁止安装,这种验证和识别,不开启安全模式和开了没区别,针对这种情况有没有什么办法绕过呢? 我们可以使用开源软件installerX,这款软件使用拥有这类原生的安装体验,安装速度也不差,并且简洁高效,还可以进行降级安装。…

[Paper Writting] 论文画图指南

目录Motivation方法概念图新老对比类方法简图类实物示意图效果示意图Architecture Motivation 方法概念图 HPT新老对比类 OSXMOTRUniADMulti-modal 3D Human Pose Estimation方法简图类 MoCoconformerBEVFormerDETRDriveVLM实物示意图 emg2pose效果示意图 umetracktransmvshoid…

不到24小时,AOne让全员用上DeepSeek的秘诀是……

DeepSeek引发新一轮AI浪潮,面对企业数字化智能升级与数据安全红线的急迫需求,IT负责人的压力山大!如何在24小时内实现全员AI落地,同时为后续安全部署铺平道路?Step1:一键开启全员智能时代 基于国产大模型领军者DeepSeek(671B满血版&70B版),天翼云AOne搭载智能引擎…

Unity Addresable打包总结第一弹

前言 使用AB包很久了,一直没有机会做一个系统的总结,趁现在准备离职,时间空闲比较多,将项目内的Addresable使用经验大致的分析总结一下,以作日后备用。 使用介绍 下方的引用链接中,发哥已经总结的很详细了,但我这里还是稍微介绍一下基本流程。 基本流程在Package Manage…

AutoCAD 逆向工程中 Shx 字体文件解析

数据格式相关的文章代码实现 https://blog.csdn.net/qq_29830577/article/details/78604983#####愿你一寸一寸地攻城略地,一点一点地焕然一新#####

golang学习笔记——gorm

gen是gorm官方推出的一个GORM代码生成工具 官方文档:https://gorm.io/zh_CN/gen/ 1.使用gen框架生成model和dao 安装gorm gengo get -u gorm.io/gen假设有如下用户表CREATE TABLE user (`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 主键,`username` varchar(1…