我可以安全地从网页事件处理程序中删除未使用的参数吗?为什么Page_Load中的参数不是未使用的?
为了成为一个整洁的程序员,我尝试修复构建警告.但是我被页面活动处理程序中未使用参数的警告陷入困境.示例: public partial class MyPage : System.Web.UI.Page { protected void Page_PreInit(object sender, EventArgs e) { some code not referencing sender or e } 如果我遵循VisualStudio的建议并删除未使用的参数sender和e,我将更改方法签名,并且代码可能无法正常工作.但是,根据但是,下一个事件处理程序也不使用参数,但是VisualStudio不会发出相同的警告: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack && !IsCallback) InitPagina()
4 2024-04-25
编程技术问答社区
如何抑制 shell 脚本错误信息?
在我的外壳脚本中,我得到了这些行: rm tempfl.txt rm tempfl2.txt 如果这些不存在,我会收到错误消息: rm: tempfl2.txt: No such file or directory rm: tempfl.txt: No such file or directory 即使这些消息并不总是会出现,有没有办法只能抑制这些消息? 解决方案 您有两个选择: 抑制rm警告 $ rm tempfl.txt 2> /dev/null 重定向脚本输出为/dev/null $ ./myscript.sh 2> /dev/null 后者的缺点是缺少脚本产生的所有其他警告消息. 其他解决方案 作为其他答案状态,您可以使用command 2> /dev/null将错误输出从command 中丢弃 但是这里发生了什么? >是用于重定向输出的操作员. 2是对标准错误输出流的引用,即2> =重定向错误输出.
34 2024-04-22
编程技术问答社区
如何让 Valgrind 完全禁止某个 .so 文件?
我正在尝试在我正在处理的程序上使用Valgrind,但是Valgrind为我使用的一个库生成了许多错误.我希望能够告诉它抑制涉及该库的所有错误.我可以提出抑制文件的最接近规则是 { rule name Memcheck:Cond ... obj:/path/to/library/thelibrary.so } 但是,这并不能完全完成这项工作.我必须为出现的每种抑制类型(cond,value4,param等)创建其中之一,并且似乎仍然错过了一些错误的错误,这些错误都在堆栈跟踪中. 有没有办法给Valgrind提供一个单个抑制规则,使其完全忽略了特定的库?即使没有办法制定涵盖所有抑制类型的规则,至少有一种方法可以创建一个规则,该规则忽略了从特定库中忽略特定抑制类型的所有错误? 解决方案 对于大多数抑制类型,您像这样省略了通配符: { name Memcheck:Cond obj:/path/to/lib/lib.so.1
8 2024-04-22
编程技术问答社区
VS2010中的FxCop行为,代码分析,以及SuppressMessage
我有这样的课程: [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Io")] public void ParaQueFalleCalidadCodigoUnoIo_ReglaCA1709() { } public void ParaQueFalleCalidadCodigoDosIo_ReglaCA1709() { } 我使用自定义规则集文件 customrules.ruleset C:\Fxcop10.0\Rules
16 2024-04-20
编程技术问答社区
是否有可能在源代码中抑制声锁的警告?
我面临着一些超声的警告,这些警告不会在不久的将来解决(现在应暂时禁用). 在CI上构建期间,声cloud提出了警告.没有任何本地分析仪. 有没有办法在项目,文件,类和/或方法级别上抑制源代码中的一些特定警告? 官方文档没有太大帮助,至少我没有设法找到解决方案. Sonarcloud尊重一些 #pragma warning disable S3881 或其他基于属性的方法或某些全局设置. 解决方案 有多种方法(至少在Java中,但我认为这可能对您有所帮助) GUI方式 - 您可以在其中定义一个键和要匹配特定规则的文件模式.这使您可以.排除规则的测试或文件夹 评论方式(Java版本) - 在Java中,您可以通过用//NOSONAR 拖延扫描仪的整行行,我假设这也可以在C#中起作用(但是请验证,如果合适,请让我们让我们知道) noation方法(Java版本) - 但看起来类似于#pragma警告disabl
34 2024-04-18
编程技术问答社区
C# 位-或运算符用于符号扩展的操作数;考虑先铸造为较小的无符号类型
我知道这些警告可能毫无意义.但是无论如何我可以摆脱它们吗? 我收到了其中7个警告. Bitwise-or operator used on a sign-extended operand; consider casting to a smaller unsigned type first 这与或运算符| 有关 我强调了发出警告的原因. int result = (int)ror((uint)(v76 ^ (v75 | 0x862D63D3)), (uint)(BitConverter.ToInt32(v4, 72) ^ 0x22)); int v11 = (int)rol((uint)(int)((v8 & v10 | ~v10 & 0xEFCDAAC9) + v3[2] - 1126481991), 17); int v144 = (int)rol((uint)(int)((v141 & v143 | ~v143 & 0xEFCDAAC9) + v3[2
6 2024-04-17
编程技术问答社区
抑制生成C#代码的警告
我已经打开了我的VS项目的"将警告作为错误",这意味着我会因缺少文档而遇到错误(此特定项目的提醒). 但是,代码的一部分是由不插入XML文档的自定义工具生成的,因此我希望忽略仅针对生成的代码而不是整个项目的丢失的XML文档.我对生成的实际文件没有影响,并且不能真正插入文件中的任何内容(因为该工具经常再生),因此我在生成的文件之外寻找存在的东西(如果有帮助的话,生成的类是部分的) 解决方案 编辑:请参阅注释,指示此不使用C#4.我不清楚它是否在编译器的较早版本中起作用. C#4规格表明这很清楚.第2.5.8.1节状态: a #pragma warning restore指令将全部或给定的警告集恢复到汇编单元开始时生效的状态.请注意,如果外部被禁用了特定的警告,则A #pragma warning restore(无论是全部还是指定的警告)将无法重新启用该警告. jeff有在博客文章中 - 基本上是重新处理自动化代码作为构建的一部分. 正如汤姆(Tom)所说,
8 2024-04-17
编程技术问答社区
在VS代码中禁用一个特定的编译器警告
我想知道如何在整个项目中抑制VS代码中的特定编译器警告. 我已经看过这个Queston:是否可能禁用特定的编译器警告?,但它用于视觉工作室,而不是视觉工作室代码. 这是上述问题中建议的答案: 1. Solution Explorer>> View>> Properties>> Build> Suppress Warnings 和 2. #pragma warning disable warning-list for#1:我找不到VS代码中任何地方的解决方案资源管理器. 对于#2,这仅在我将其包含在每个脚本的顶部时才有效.我需要在整个项目中这样做的方法. 更新: 我在.csproj文件中尝试使用>,但没有GO. 回顾了最后一个更改后,我注意到它已恢复为0169.然后,我意识到我需要的是noWarn>0169;8019.切换, ;解决了问题. 好吧,事实证明,上述解决方案毕竟没有起作用.一旦
12 2024-04-17
编程技术问答社区
在Visual Studio中为所有项目抑制一个警告
我已经看到了答案,显示了如何抑制特定代码或特定项目的警告.我不要那个. 我想抑制我项目的全部的特定警告. (如果重要的话,警告是IDE0044.我正在使用C#.) 解决方案 现在对Visual Studio 2017(15.7.1)的最新更新现在可以选择.在Tools->Options菜单下,选择TextEditor->C#->Code Style->General选项卡.在Field preferences下,有一个Prefer readonly选项.将其设置为No. 如果您想在代码的旁边检查此优先级,则可以设置一个editorconfig,因此消耗代码的其他人不会收到警告,但必须在每个解决方案上完成此警告基础.您将设置的editorconfig值是: dotnet_style_readonly_field = false:none 其他解决方案 您可以使用 SuppressMessage 在System.Diagnostics.CodeAnal
4 2024-04-13
编程技术问答社区
如何在VS2012中禁用一个C#项目的特定警告?
我正在尝试在VS2012中的C#项目的构建过程中生成部分XML文档.当我在project-> properties-> build中检查XML文档文件选项时,我会为缺乏文档的每个公共成员提供一个构建警告.由于我们以警告作为错误编译,因此会阻止构建. 这个问题建议建议通过禁用某些警告,但我不知道如何在VS2012中执行此操作! msft文档在这里到VS2010,仅覆盖VB.我如何在C#/VS2012的项目级别禁用这些警告? 解决方案 您收到的警告有一个数字(例如CS2000),因此您需要做的是右键单击项目,转到Build tab,然后将此警告添加到文本框.您随后可以通过用逗号分开抑制多个(例如CS2000,CS2001). 其他解决方案 对于项目级别,请转到项目 - >属性 - >构建选项卡 如果要禁用某些代码部分的警告,请尝试以下操作: #pragma warning disable XXX,XXX //your code #p
12 2024-04-13
编程技术问答社区
在C#中为类的特定字段禁用/抑制警告CS0649
我在C#类中有一些字段,我使用反射初始化.编译器向他们显示CS0649警告: field foo' is never assigned to, and will always have its default value null'(CS0649)(汇编CSHARP) 我只想禁用这些特定字段的警告,但仍会显示此类其他类和其他字段的警告. 可以禁用整个项目的CS0649,还有其他细粒度吗? 解决方案 您可以使用public class MyClass { #pragma warning disable 0649 // field declarations for which to disable warning private object foo; #pragma warning restore 0649 // rest of class } 请参阅抑制"永不使用",并且"从未分配给C#的警告",以提出扩展的答案. 其他解决方案 我相信值得注意的是,使用
2 2024-04-13
编程技术问答社区
抑制C#中 "从未使用 "和 "从未分配给 "的警告
我在c#项目中有一个httpsystemdefinitions.cs文件,该文件基本上描述了通过托管代码消费的旧Windows ISAPI. 这包括与ISAPI相关的完整结构集,而不是全部或由代码消耗.在编译时 警告字段'unionsquare.isapi.http_filter_preproc_headers.setheader'从未分配给,并且将始终具有其默认值null null 或 警告该字段'unionsquare.isapi.http_filter_preproc_headers.httpstatus'从未使用 可以使用#pragma warning disable禁用这些?如果是这样,相应的错误编号是多少?如果没有,我还能做什么?请记住,我只为此文件做什么,重要的是,我从其他文件中看到这样的警告. 编辑 示例结构: - struct HTTP_FILTER_PREPROC_HEADERS { // // For
10 2024-04-10
编程技术问答社区
忽略gobble的返回值|只有scanf (gcc)
所以我已经阅读了这个问题和其他相关问题,我知道检查检查是一个好主意返回scanf以避免惊喜. 但是我的代码中有以下scanf: /* * If we don't gobble newlines, * then they'll be interpreted as commands. * Gobble both \n and \r (because the input files use 0x0D). */ (void) scanf("%*[\n\r]"); 如您所见,我正在将scanf的结果投入到void上,但是GCC仍然在-ansi -pedantic -Wall -O3下警告,如所指出的在这里. 没有编译器特定指令的情况下,我可以做些干净的抑制此警告,也就是说,在纯ANSI C90中? (通过清洁,我的意思是没有if (scanf(...));或类似.) 解决方案 GCC 4.4在这种情况下确实警告过,但是4.7和4.9却没有.这与您链接的GCC错误的主
6 2024-04-10
编程技术问答社区
gcc c ++如何禁用```-wno-orror = permissive`误差'' - fpermissive`和`werror'都在上面吗? (将PTR传递到C vs vs vs c ++中的R值)
对于此结构和功能: typedef struct data_s { int i1; int i2; } data_t; void print_data_passed_by_ptr(const data_t *data) { printf(" i1 = %i\n" " i2 = %i\n\n", data->i1, data->i2); } 以下在C中正常工作.如下所示,我正在创建data_t struct在就位并传递其地址,作为R值(这意味着未分配给变量),到print_data_passed_by_ptr()函数: // Print R-value struct passed by ptr print_data_passed_by_ptr(&(data_t){ .i1 = 7, .i2 = 8, }); 我的C构建命令是: gcc -Wall -We
12 2024-04-09
编程技术问答社区
赋值给位域时GCC转换警告
是否有任何方法可以在此代码中使用GCC生成的警告: int main() { struct flagstruct { unsigned flag : 1; } a,b,c; a.flag = b.flag | c.flag; return a.flag; } 警告是 warning: conversion to 'unsigned char:1' from 'int' may alter its value [-Wconversion] 看起来两个标志在一起时将扩展到int. 我认为真的很奇怪的是,施放两个旗帜中的任何一个未签名的旗 a.flag = (unsigned)b.flag | c.flag; 这是编译器错误还是应该这样工作? 解决方案 一年后,我修改了问题: 刚刚使用不同的编译器版本进行了测试.当我第一次遇到此错误时(现在我很确定,我被允许将其称为错误),我已经意识到警告仅在Clang
8 2024-04-08
编程技术问答社区
如何将带有保留关键字的旧C代码与C++连接起来?
我有一个超过10年的C库,我相信 - 过去在过去的好时光,但是当我尝试将其与C ++源一起使用(包含主要功能)时我遇到了一些困难. 编辑:要澄清,C库用gcc恰好编译,并生成一个对象文件old_c_library.o.该库 应该以某种方式使用,以便main.c c源文件中的c头文件old_c_library.h是#include d.然后,您的主要C源文件应通过gcc进行编译和链接.在这里,我想改用C ++源文件main.cpp,然后将其与g++链接/链接. 在C ++源文件的汇编期间发生以下三个问题: C库的标头文件之一包含C ++保留Word new(这是整数的名称),导致致命错误;和 C库的标头文件之一包含a calloc呼叫(丢失了明确的类型),这导致致命错误;和 C库的各种文件包含签名和未签名整数的比较的代码,这引起了警告. 编辑:我试图使用评论中建议的#extern "C" { #include "obsolete_c_library.h" }"技
8 2024-04-08
编程技术问答社区
在gcc中部分禁用源代码中的迂腐警告
我试图让gcc闭嘴我对二进制常数的使用.它们使代码更具可读性,但阻止我使用-pedantic,我遵守了我.我要么想拥有一个-fnobinaryconstwarn之类的开关,要么是类似的(我认为在仔细阅读男人页面后不存在),或者使用 #pragma GCC diagnostic ignored "-pedantic" ,要选择性地禁用pedtical警告,以如下所述: 选择性地禁用GCC警告,仅用于翻译的一部分单位? 不幸的是,这似乎不起作用. 我有什么选择? 对于clang #pragma GCC diagnostic ignored "-Wpedantic" 有效,虽然上面的行没有,但是它会生成gcc的错误. 解决方案 也许,您可以使用可以以便携式方式完成您想要实现的宏. 这是一个简短的例子: #include #define BINARY(N) strtol(#N, 0, 2) int main() { uns
8 2024-04-07
编程技术问答社区
如何消除 "丢弃限定词 "的警告?
使用GCC和C99模式,我的功能称为: void func(float *X); 当我调用函数时,我使用挥发性数组y: volatile float Y[2]; int main() { func(Y); return 0; } 编译(使用-Wall)时,我会收到以下警告: warning: passing argument 1 of ‘func’ discards qualifiers from pointer target type blah.c:4: note: expected ‘float *’ but argument is of type ‘volatile float *’ 我可以用显式(float *)键入铸造来消除它,但是在代码中的许多地方重复. 是否有一种方法可以消除此特定警告,具有选项或Pragma(或等效的东西)? 解决方案 不,您无法关闭该警告.它告诉您您正在违反类型系统.如果要调用func您要么需要
14 2024-04-06
编程技术问答社区
抑制C警告"未使用变量X"的最佳方法?
抑制C编译器(例如GCC)的最佳/最整洁的方法是"未使用变量x"警告? GCC的求婚解释 - wunused-variable 每当局部变量或非恒定静态变量都没有使用,除了其声明 外,请警告 我不想给我的编译器提供任何某些旗帜以删除所有这些警告,仅针对特殊情况. 解决方案 我找到了一篇文章, http://sourcefrog.n​​et/weblog/software/languages/c/unused.html ,解释 unused .有趣的是,作者还将未使用的变量名称操纵,因此您将来不能无意中使用它. 摘录: #ifdef UNUSED #elif defined(__GNUC__) # define UNUSED(x) UNUSED_ ## x __attribute__((unused)) #elif defined(__LCLINT__) # define UNUSED(x) /*@unused@*/ x #else # defin
20 2024-04-06
编程技术问答社区
什么是@SuppressWarnings("deprecation"),我如何解决这个问题?
我正在关注YouTube教程,遇到了这个错误. 在这条线,@SuppressWarnings("deprecation")出现. Player targerPlayer = Bukkit.getServer().getPlayer(args[0]); 这是我简单的治疗插件. package me.roofer.youtube; import java.util.logging.Logger; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.ja
8 2024-04-05
编程技术问答社区