我发现你可以用C#中的'@'字符开始你的变量名.在我的C#项目中,我使用的是用Java编写的Web服务(我添加了对我的项目的Web引用).WSDL中定义的一个接口对象有一个名为"params"的成员变量.显然,这是C#中的保留字,因此您不能拥有名为"params"的成员变量的类.生成的代理对象包含一个如下所示的属性:
public ArrayList @params {
get { return this.paramsField; }
set { this.paramsField = value; }
}
Run Code Online (Sandbox Code Playgroud)
我搜索了VS 2008 c#文档,但找不到任何相关信息.搜索谷歌也没有给我任何有用的答案.那么变量/属性名称中'@'字符的确切含义或用法是什么?
你可以想象,谷歌搜索或Binging任何包含'@'的短语很难.
在创建新的Web服务时,导入的C#代理类的一个成员以@为前缀.例如:
plan.@event = new Insurance.Event();
Run Code Online (Sandbox Code Playgroud)
我假设它是Visual Studio解决与保留字的潜在冲突的方式,因为'event'是一个保留字.将Web服务接口中的属性更改为"event"之外的其他内容(即"healthevent")会从属性中删除@.这是正确的假设吗?
我认为我的问题与此不同: C#中字符串前面的@是什么?
我在VB.net工作,所以在C#中这可能是一件简单的事情,但我不知道这一点.
我得到以下代码,其中我在字符串变量中有10个XML.在下面的代码片段中调用LoadXml方法时,请在claimList字符串变量前面建议需要@符号:
private void UploadNewClaims(PMAUser grumble, string companyAbbreviation, string claimsList)
{
var claimDoc = new System.Xml.XmlDocument();
claimDoc.LoadXml(@claimsList);
Run Code Online (Sandbox Code Playgroud) 如果您认为我没有做过足够的研究,请先询问我
问题 刚遇到业务需求,我们必须确保字典中的值是唯一的.即,我们应该过滤字典,这种过滤的结果应该具有唯一值的键值对.
顺便说一下,它是一个带字符串值和字符串键的简单字典.为了澄清更多,下面是示例输入和预期输出值 -
sourceDictionary将具有如下值(仅为了表示数据,而不是语法正确) - {{"Item1","Item One"},{"Item11 ","项目一"},{"Item2","第二项"},{"Item22","第二项"}}对于此输入,filteredDictionary应如下所示 - {{"Item1","Item One" },{"Item2","Item Two"}}
我提出的解决方案是有效的
var sourceDictionary = serviceAgent.GetSampleDictionary(); // Simplified for brevity
var filteredDictionary =
sourceDictionary.GroupBy(s => s.Value)
.Where(group => @group.Any())
.Select(g => g.First())
.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
Run Code Online (Sandbox Code Playgroud)
问题 我是否在制作太多逻辑?或者,换句话说,有一个更简单的方法吗?
我刚开始写线...
if (!e.PeriodicData.Keys.Contains(process))
{
}
Run Code Online (Sandbox Code Playgroud)
但在"!"上做了一个错字 然后点击"@".例如
if (@e.PeriodicData.Keys.Contains(process))
{
}
Run Code Online (Sandbox Code Playgroud)
我期待intellisense翻转,但事实并非如此.所以我编译并成功编译.
它不是运营商,那么什么是"@"?它有什么作用?
可能重复:
在C#变量名前放置@是什么意思?
我正在尝试学习C#lambda表达式.当我搜索示例时,我看到下面的代码
Where(@t => string.Compare(@t.Code, argument.Code, StringComparison.CurrentCultureIgnoreCase) == 0)
Run Code Online (Sandbox Code Playgroud)
我想知道t之前的'@'符号是什么意思?
可能重复:
在C#变量名前放置@是什么意思?
嗨,
我讨好了Silverlight和RIA服务.在创建支持编辑的新域服务时,在域服务类(C#)中生成以下代码:
public void InsertClass(Class @class){
...
}
Run Code Online (Sandbox Code Playgroud)
@变量名中符号的含义是什么?
这是我在第一个项目中VS:S的问题:在第二个项目中
System.Security.Cryptography.AesCryptoServiceProvider obj;
一切正常
:
System.Security.Cryptography.AesCryptoServiceProvider obj1;
它无法识别AesCryptoServiceProvider?!!
是VS使用不同的包或什么?!
更新:更改了变量名称但仍无效