草庐IT

c# - 错误 CS0051(不一致的可访问性 : parameter type 'Job' is less accessible than method 'AddJobs.TotalPay(Job)' )

我通过省略totalFee字段成功编译并运行了下面的源代码。如何将totalFee写入此程序,以便它准确计算每项工作的总费用(费率*时间)?下面,您会看到我尝试使用一种方法;这产生了错误CS0051(可访问性不一致:参数类型“Job”的可访问性低于方法“AddJobs.TotalPay(Job)”)。此源代码是对以下作业的响应:"DesignaJobclassforHarold’sHomeServices.Theclasscontainsfourdatafields—Jobdescription(forexample,“washwindows”),timeinhourstocomple

C# 字典初始化程序编译不一致

以下代码可以编译,但会因NullReferenceException而失败:classTest{publicDictionaryDictionary{get;set;}}staticvoidMain(string[]args){varx=newTest{Dictionary=//fails{{"key","value"},{"key2","value2"}}};}如果您将标记为“失败”的行替换为以下内容,它将正常工作(如预期):Dictionary=newDictionary失败的语法是否有任何用途——它能否在其他情况下成功使用?或者这是编译器的疏忽? 最佳

c# - 可访问性不一致 : return type is less accessible than method C#

好吧,这真的很奇怪。我有一个私有(private)成员,我想将它用于Form2。我创建了一个公共(public)静态方法,以便我可以将该成员放入Form2。这是我的代码:privatestaticAppControllerappController;privateBreadRepositorybreadRep;privateCakeRepositorycakeRep;privateSandwichRepositorysandwichRep;publicForm1(){InitializeComponent();breadRep=newBreadRepository();cakeRep=

c# - Equals 和 GetHashCode 方法不一致

读完这个问题Whydo"int"and"sbyte"GetHashCodefunctionsgeneratedifferentvalues?我想进一步挖掘并发现以下行为:sbytei=1;intj=1;object.Equals(i,j)//false(1)object.Equals(j,i)//false(2)i.Equals(j)//false(3)j.Equals(i)//true(4)i==j//true(5)j==i//true(6)i.GetHashCode()==j.GetHashCode()//false(7)(3)和(4)之间的差异打破了Equals应该对称的要求。(

c# - 跨 Windows 体系结构的 JPEG 解压缩不一致

我正在一堆装有不同版本Windows的计算机上测试JPEG解压缩。所有这些计算机都安装了.NET4,我正在针对.NET2和“AnyCPU”平台目标进行编译。以下代码在不同的系统上产生不同的输出。Bitmapbmp=(Bitmap)Image.FromFile("test.jpg");longdatasum=0;for(inty=0;y所有Win764位和WinXP32位机器都产生一个结果。而所有Win732位机器都会产生另一个结果。知道为什么输出会有所不同吗? 最佳答案 它由gdiplus.dll实现。检查在不同系统上实际加载了哪些

c# - C# 规范 7.16.2.5 中的不一致

我正在尝试在Roslyn中实现C#规范7.16.2“查询表达式转换”。但是,我在7.16.2.5“选择子句”中遇到了问题。它是这样写的Aqueryexpressionoftheformfromxineselectvistranslatedinto(e).Select(x=>v)exceptwhenvistheidentifierx,thetranslationissimply(e)Forexamplefromcincustomers.Where(c=>c.City=="London")selectcissimplytranslatedintocustomers.Where(c=>c.C

c# - float 的乘法性能不一致

在.NET中测试float的性能时,我偶然发现了一个奇怪的情况:对于某些值,乘法似乎比正常情况慢得多。这是测试用例:usingSystem;usingSystem.Diagnostics;namespaceNumericPerfTestCSharp{classProgram{staticvoidMain(){Benchmark(()=>float32Multiply(0.1f),"\nfloat32Multiply(0.1f)");Benchmark(()=>float32Multiply(0.9f),"\nfloat32Multiply(0.9f)");Benchmark(()=>f

c# - 为什么 stackalloc 初始化有不一致的行为?

以下代码用非零值初始化两个stackalloc数组。虽然数组A已正确初始化,但数组B仍填充零,这与预期相反。通过反汇编编译后的可执行文件,可以看到没有为数组B生成初始化代码,这是为什么?usingSystem;namespaceConsoleApp1{classProgram{staticunsafevoidMain(string[]args){doublea1=1;double*A=stackallocdouble[]{a1,0,0,a1,a1};//resultsin10011double*B=stackallocdouble[]{a1,0,0,0,0};//resultsin00

c# - XML(反)序列化无效字符串在 C# 中不一致?

在C#(.net4.0和4.5/vs2010和vs12)中,当我使用XMLSerializer序列化包含具有非法字符的字符串的对象时,不会抛出任何错误。但是,当我反序列化该结果时,会抛出“无效字符”错误。//addtoXMLItemsitems=newItems();items.Item="\vhelloworld";//contains"illegal"character\v//variablesSystem.Xml.Serialization.XmlSerializerserializer=newSystem.Xml.Serialization.XmlSerializer(type

c# - 检查 Visual Studio 项目的一致性

您有一个大型VisualStudio解决方案,其中包含数十个项目文件。您将如何验证所有项目都遵循其属性设置中的某些规则,并在添加新项目时强制执行这些规则。例如检查所有项目是否有:TargetFrameworkVersion="v4.5"Platform="AnyCPU"WarningLevel=4TreatWarningsAsErrors=trueOutputPath=$(SolutionDir)binSignAssembly=trueAssemblyName=$(ProjectFolderName)我自己知道两种方法,我将在下面的答案中添加,但我想知道人们是如何进行这种类型的项目测试