草庐IT

c# - 委托(delegate)的@前缀有什么特殊含义吗?

我曾多次看到ReSharper生成如下所示的代码:delegatevoidmyHandler(inti);myHandlermyHandlerContainer;...foreach(Delegate@delegateinmyHandlerContainer.GetInvocationList()){...}@delegate中的“@”是否赋予该变量任何特殊语义?或者这只是我以前没有遇到过的约定? 最佳答案 来自MSDN的更多详细信息:Theprefix"@"enablestheuseofkeywordsasidentifiers,

c# - 如何使用 LINQ 方法语法计算子集合的项数?

假设我有一个模式,表示问题实体。每个问题都可以投赞成票、投反对票,或者当然,根本不投票——就像在StackOverflow中一样。我想获得给定用户的投票数。intnumber=(fromqinuserDbContext.Questionsfromqvinq.QuestionVoteswhereqv.IsVoteUpselectqv).Count();我想编写相同的查询,但使用方法语法。我如何使用相同的示例执行此操作? 最佳答案 您可以使用SelectMany:userDbContext.Questions.SelectMany(x=

c# - C# lambda 表达式是否可以返回 void?

我有以下方法,我想知道下面是否有任何可以放在default(void)中的东西,因为有一个编译器错误表明void在这里无效:privatevoidapplyDefaultsIfNecessary(ApplicationConfigurationconfiguration){vardefaults=newDictionary,Action>(){//{rule,action}-ifruleistrue,executeaction{(c)=>c.ConnectionString==null,(c)=>c.ConnectionString="foo"},{(c)=>c.OutputExcel

c# - C# 中的数组属性语法

我有一个具有整数数组属性的类,我正试图找出它的正确语法。整数数组在类构造函数中实例化。classDemoClass{privateint[]myNumbers;publicint[]MyNumbers{get{/*Somelogic*/}set{/*Somelogic*/}}publicDemoClass(intelements){//Here,thearrayshouldgetinstantiatedusingtheelements.}}如果我希望我的客户端代码通过属性MyNumbers从数组中检索数字,get/setblock语法如何工作?我怎样才能向它发送正确的索引?我必须初始化

C# 多行字符串与 html

是否可以使用包含html的多行C#字符串?以下工作正常:stringoutput=@"Qiuckbrownfoxjumpsoverthelazylog";但这不起作用:stringoutput=@"";但是这个类似的例子确实有效,我只是取出了参数上的属性:stringoutput=@"";关于将html打包成字符串变量的最佳方法有什么建议吗?如果不可能,我假设下一个最好的方法就是从文件中读取?还有其他想法吗?示例2的问题似乎是转义引号。 最佳答案 使用双引号而不是转义它们。stringoutput=@"";

c# - 命名空间 c# 中的方法

有没有什么方法可以调用命名空间内的函数而无需在c#中声明类。例如,如果我有2个完全相同的方法并且应该在我的所有C#项目中使用,是否有任何方法可以将这些函数制作成一个dll,然后只说“使用myTwoMethods”top并在不声明类的情况下开始使用这些方法?现在,我做的是:我的类.我的方法();我想做的是:我的方法();谢谢,罗希特 最佳答案 2015年更新:不,您不能在C#中创建“自由函数”,但从C#6开始,您将能够在不提及类名的情况下调用静态函数。C#6willhavethe"usingstatic"feature允许这种语法:s

c# - 在 C# 中使用 return 和简写 if

为什么下面这行代码不能在方法中运行?return(count>0)?true:false;如果我这样做,它工作得很好:boolret=(count>0)?true:false;returnret;奖励问题:它真的比标准if语句更快或更有效吗?boolret=false;if(count>0)ret=true;returnret;你会推荐哪一个? 最佳答案 我会推荐:returncount>0;无需显式返回true或false。话虽如此,你的编译错误让我很感兴趣。乍一看它应该可以工作。你能发布一个简短但完整的编译失败的例子吗?该条件表

c# - 为什么 C# 允许在集合初始值设定项中使用尾随逗号,但不允许在参数中使用?

有效语法:vartest=newList{"a","b","c",//Validtrailingcomma};语法无效:privatevoidTest(paramsstring[]args){}Test("a","b","c",//Invalidtrailingcomma);这是语法不一致的问题还是经过深思熟虑的决定? 最佳答案 因此,尽管我永远不会知道“真正的”原因,因为我不在编译器团队中,但我还是会尝试一下——而且有人出现的可能性值得怀疑。尾随逗号通常在一些场景中很有用,即合并和代码生成。在诸如集合或属性初始化器和枚举之类的上下

c# - 使用 Roslyn 将自动实现的属性添加到类

我正在尝试通过从头开始构建现有但简单的应用程序来学习Roslyn,这似乎是一种有效的学习方式。无论如何,我有以下代码:varroot=(CompilationUnitSyntax)document.GetSyntaxRoot();//AddthenamespacevarnamespaceAnnotation=newSyntaxAnnotation();root=root.WithMembers(Syntax.NamespaceDeclaration(Syntax.ParseName("ACO")).NormalizeWhitespace().WithAdditionalAnnotati

c# - 将嵌套的 for 循环转换为单个 LINQ 语句

有人可以帮我把这个嵌套结构变成单个LINQ语句吗?EventLog[]logs=EventLog.GetEventLogs();for(inti=0;i 最佳答案 嵌套循环通常以多个“from”子句结束(编译器将其转换为对SelectMany的调用):varremoteAccessLogs=fromloginEventLogs.GetEventLogs()wherelog.LogDisplayName=="AAA"fromentryinlog.Entrieswhereentry.Source=="BBB"selectentry;(假