Tag: warnings

c#warning – 使用NeutralResourcesLanguageAttribute标记程序集

我收到以下警告: “ CA1824标记具有NeutralResourcesLanguageAttribute的程序集” 根据MSDN,原因是:程序集包含基于ResX的资源,但没有应用System.Resources.NeutralResourcesLanguageAttribute。 谁能解释一下这意味着什么? 我不想定义具体的文化背景。 我希望它们可以自定义。

如果我不注意警告“隐藏inheritance成员怎么办? 要使当前成员覆盖该实现……“

这可能是一个很好的观点,但它涉及编译器在您执行以下操作时发出的警告: class A { public virtual void F() { } } class B : A { public void F() { } } 然后你得到警告: ‘EomApp1.BF()’ hides inherited member ‘EomApp1.AF()’. To make the current member override that implementation, add the override keyword. Otherwise use the new keyword. 问题:如果我什么都不做,警告我会发生什么警告? 如果我添加’new’关键字,那么我的程序function是否会有所不同? (注意:我知道我可以很容易地测试这个,但我觉得这里值得问一下)

ClickOnce应用程序安装 – 安全警告

我有一个部署在网站上的clickonce应用程序(例如, http://example.com ),用户将从该网站下载我发布的应用程序的setup.exe文件,并在他们的计算机上安装该应用程序。 我已经使用GoDaddy为我的公司颁发的证书签署了我的申请的ClickOnce清单。 但是,用户在尝试安装我的应用程序时仍会收到以下应用程序安全警告。 有没有办法让这个安全警告根本不显示? 任何帮助将不胜感激。

是否通过理解语法解决了“访问修改后的闭包”的问题?

ReSharper 6.0在第一个代码片段中为dr标识符提供了“访问修改后的闭包”警告。 private IEnumerable GetTheDataTableStrings(DataTable dt) { foreach (DataRow dr in dt.Rows) { yield return GetStringFuncOutput(() => dr.ToString()); } } 我想我对这个警告试图保护我的基本理解是:在调查GetTheDataTableStrings的输出之前, dr会多次更改,因此调用者可能无法获得我期望的输出/行为。 但是R#没有给我第二个代码片段的任何警告。 private IEnumerable GetTheDataTableStrings(DataTable dt) { return from DataRow dr in dt.Rows select GetStringFuncOutput(dr.ToString); } 使用理解语法时,放弃此警告/关注是否安全? 其他代码: string GetStringFuncOutput(Func stringFunc) { return stringFunc(); }

定义operator ==但不定义Equals()或GetHashCode()有什么问题?

对于下面的代码 public struct Person { public int ID; public static bool operator ==(Person a, Person b) { return a.Equals(b); } public static bool operator !=(Person a, Person b) { return !a.Equals(b); } } 为什么编译器会给我这些警告? 没有定义下面的方法有什么问题? warning CS0660: ‘Person’ defines operator == or operator != but does not override Object.Equals(object o) warning CS0661: ‘Person’ defines operator […]

为什么没有给这个未使用的变量发出警告?

在VS2010,VS2008或Windows上的MonoDevelop中编译以下程序时,我收到警告CS0219 ,“已分配变量’y’,但从未使用过它的值”。 namespace Problem { public class Program { private static void Main(string[] args) { object x = new object(); int y = 0; } } } 在Visual Studio中编译时为什么没有x警告? 有趣的是,在Mac OS X上的MonoDevelop中编译时,我确实得到了x 和 y CS0219警告。

C#编译器应该发出警告但不是吗?

我的团队中有人尝试在空catch子句中修复“未使用变量”警告。 try { … } catch (Exception ex) { } – >发出关于ex未被使用的警告。 到现在为止还挺好。 修复是这样的: try { … } catch (Exception ex) { string s = ex.Message; } 看到这个,我想“很棒,所以现在编译器会抱怨没有被使用。” 但事实并非如此! 这段代码没有警告,我无法弄清楚原因。 有任何想法吗? PS。 我知道将exception静音的全能条款是一件坏事,但这是一个不同的话题。 我也知道通过做这样的事情可以更好地消除初始警告,这也不是重点。 try { … } catch (Exception) { } 要么 try { … } catch { }