【c#-编译期间未发出编译器警告CS4014】教程文章相关的互联网学习教程文章

c# – 编译器错误消息:CS0118:’System.Configuration.ConfigurationManager.AppSettings’是’属性’但是像’方法’一样使用【代码】

编译器错误消息:CS0118:’System.Configuration.ConfigurationManager.AppSettings’是’属性’但是像’方法’一样使用<add key="ObjConn" value="Provider=SQLOLEDB;Persist Security Info=True;User ID=OMembers;PWD=OMembers;Initial Catalog=Db;Data Source=""/>strconnection = System.Configuration.ConfigurationManager.AppSettings("ObjConn");sqlcon = new SqlConnection(strconnection);解决方法:在C#中,执行此操作:...

C#:具有相同名称和不同签名的多个函数,但编译器调用错误的函数.怎么解决?【代码】

我有两个功能:partial class Database {public void Insert(string table, params string[] values){string query = "INSERT INTO [{0}] VALUES ('{1}')";ExecuteNonQuery(string.Format(query, table, string.Join("','", values)));}public string Insert(string table, string returnedColumn, params string[] values){string query = "INSERT INTO [{0}] OUTPUT INSERTED.{1} VALUES ('{2}')";return ExecuteScalar(string.F...

c# – 为未使用的用户生成编译器警告的任何方法?

有没有办法在VS2008中为未使用的语句生成警告?我知道有Edit-> Intellisense->组织使用 – >删除未使用的使用,但如果这是编译时警告会很好.解决方法:如果您使用ReSharper,默认情况下,它将以不同的颜色显示未使用的使用(作为错误分析侧栏中的警告),如果您突出显示它们,则可以将它们更改为显示为错误.不幸的是,它不会阻止它编译,但它会提醒你它们没有被使用.

C#中的编译器是否会删除始终为false的条件【代码】

假设我在c#中有以下代码片段static const bool DO_PERFORMANCE_CODE = false;if (DO_PERFORMANCE_CODE) {// performance monitoring code goes here }编译器会删除该代码吗?这是我想要的功能.基本上我想模仿C#中的条件编译,但我想要除Release和Debug之外的更多配置.如果有更好的方法,我会乐于听到它.解决方法:在“debug”中构建时,定义了预处理器变量DEBUG.所以,你可以这样做:public void MyFunc() { //do release stuff #if DEB...

Unix中的免费C#编译器【代码】

我需要在Unix中使用C#语言的免费编译器.有人请指点我或更好,在Mint中使用终端命令安装软件[抱歉我用Unix系统低]?解决方法:试试http://mono-project.com 只需输入终端即可sudo apt-get install mono-devel此外,您可能需要MonoDevelop – 适用于.NET语言的免费IDEsudo apt-get install monodevelop

c# – 编译器能否在字符串上优化ToString()?【代码】

我相信每个人都会遇到喜欢ToString()方法的开发者.我们都可能看到类似以下的代码:public static bool CompareIfAnyMatchesOrHasEmpty(List<string> list1, List<string> list2) {bool result = false;foreach (string item1 in list1){foreach (string item2 in list2){if (item1.ToString() == item2.ToString()){result = true;}if (item1.ToString() == ""){result = true;}}}return result; }我想知道的是,编译器是否可以优化...

c# – 编译器未解析为预期的扩展方法【代码】

我今天注意到在尝试将内联lambda函数转换为闭包时,所以我可以在多个位置使用相同的lambda.这将编译为正确的扩展方法:appBuilder.Use((ctx, next) => {Console.WriteLine("Test");return next(); });该Use是由以下内容定义的扩展:public static IAppBuilder Use(this IAppBuilder app, Func<IOwinContext, Func<Task>, Task> handler);现在,如果我做同样的事情,但将内联移动到变量:Func<IOwinContext, Func<Task>, Task> handler...

c# – 为什么不obj ?? null导致编译器警告【代码】

在引用类型与null合并的情况下,为什么这不是C#编译器中的编译器警告?这有什么意义吗?obj2 = obj ?? null;解决方法:你的例子并不完全有意义,但这样的事情确实如此;d = a ?? b ?? c ?? null;在这里,我说的是取三个的第一个非空值,如果它们都为null,则只取null.

c# – 使用.NET Core定位多个框架的编译器指令【代码】

我的代码中有一个针对.NET Core和net45的库,我需要使用这样的反射:var type = obj.GetType(); var properties = type.GetProperties().ToList();if (type.IsPrimitive || type.IsEnum || properties.Count == 0)return new Dictionary<string, object> { { unnamed, obj } };现在我移植我的库也支持.net核心所以我创建了一个新的.net核心库项目,这是我的project.json{"version": "1.0.0","dependencies": {"Wen.Logging.Abstracti...

基于PER-FILE的C#编译器常量?【代码】

是否可以在PER-FILE /项目项基础上定义编译器常量? 背景:我想实现一个数据库抽象层(DAL),它将所有读取和写入任务分开,但是保留一个可以同时执行这两个操作的DAL,但是没有多次实现相同的方法(抽象类意味着每个都有1个实例类)支持的数据库类型). 所以我想像这样分开我的DAL:abstract class ReadDAL abstract class WriteDAL abstract class ReadWriteDAL (multiple-inheritance from Read&Write-DAL).不幸的是,这不起作用,因为C#不...

c# – 我的visual studio插件如何在构建之前检测编译器错误的方式与“删除和排序使用”相同?

我正在制作一个重构工具,它可以自动化一些与StyleCop相关的更简单的代码样式.我希望我的加载项能够做的事情之一(作为开发人员可以打开/关闭的可选功能)自动调用“组织使用 – >删除和排序”功能.这是一个简单的宏调用. 但是,我的问题是,当我经历并在解决方案中的每个.cs非设计器文件上递归调用宏时,此特定宏在执行之前检查错误.如果出现语法错误并且我的加载项开始调用该功能,则会为每个文件抛出一个对话框. 我想做的是使用函数用于...

c# – 哪些后编译器(或其他)选项可用于在结构之间重用功能?【代码】

说我创建了一个名为Percent的结构.逻辑上,它作为结构是有意义的,因为它表示一个值,并且应该在使用时通过值传递.该结构还包含一些属性和静态隐式运算符.百分比可以处理任何类型的百分比,包括超过100%的百分比. 现在,假设我希望能够在仅关注0-100%之间的百分比的应用程序中使用Percent.我决定创建一个名为ValidPercent的新结构,它几乎与Percent相同,除了进行额外的检查以确保ValidPercent永远不会包含高于100%或低于0%的值. Vali...

c# – Visual Studio编译器如何将安全属性编译为CIL?【代码】

我在类中的方法上有以下属性SecurityPermission(SecurityAction.Assert).我编译它(调试版本)并通过查看原始堆并查看包含PermissionSet blob的blob堆来查看ildasm.exe中的输出.我期望(根据ECMA-335):2e 01 80 84 53 79 73 74 65 6d 2e 53 65 63 75 72 >. System.Secur< 69 74 79 2e 50 65 72 6d 69 73 73 69 6f 6e 73 2e >ity.Permissions.< 53 65 63 75 72 69 74 79 50 65 72 6d 69 73 73 69 >SecurityPermissi< 6f 6e 41 74...

如何获得C#.NET编译器程序集GUID

我试图弄清楚装配何时发生变化(即使版本号相同). 现在最好的努力是发现它已被重新编译,因此想使用MSBuild使用的相同项目,我相信这是存储在元数据中的文件GUID? (按照The .NET File Format) 有没有什么办法可以访问这些信息而无需重新发明轮子并下降到文件字节?解决方法:好吧,似乎程序集没有关联的GUID.模块,类,方法,字段具有GUID,并且程序集中的“GUID”流是存储它们的位置. 如果要访问程序集的元信息(例如,其主模块的GUID),Mono...

c# – 标识异步方法的表达式会导致编译器警告【代码】

我使用表达式来标识类中的特定方法,并返回该方法的属性.当方法是异步的时,编译器会给我一个警告,即应该等待该方法. 有没有其他方法可以识别方法,或任何方式来抑制警告,而不使用pragma?我不想使用字符串来识别方法. Resharper建议使用async / await,但异步lambda表达式不能转换为表达式树. 其他答案是任务的扩展方法,但后来我无法使用该属性获取方法. 示例代码:class Program {static void Main(string[] args){var attributeProv...