Tag: C#的

一个奇怪的C ++错误:test.cpp:15:错误:作为'*'的'this'parameter passing'const *'丢弃限定符

我有一些特定的代码的麻烦,如果任何人都可以在这个问题上给我启发,这将不胜感激,我已经隔离了下面的示例中的问题: #include <iostream> using namespace std; class testing{ int test(); int test1(const testing& test2); }; int testing::test(){ return 1; } int testing::test1(const testing& test2){ test2.test(); return 1; } 那么可能会导致以下错误: test.cpp:15:error:作为'int testing :: test()'的'this'parameter passing'const testing'会丢弃限定符 非常感谢!

如何testingMethodInfo.ReturnType是否是System.Void的types?

使用reflection来获得一个MethodInfo,我想testing返回的types是typeof System.Void。 testing它是否是System.Int32正常工作 myMethodInfo.ReturnType == typeof(System.Int32) 但 myMethodInfo.ReturnType == typeof(System.Void) 不编译? 目前我正在testing如果名称的string表示是“System.Void”,这似乎是非常错误的。

性能 – 使用Guid对象或Guidstring作为键

当使用Guid作为Dictionary的索引时,使用Guid对象还是使用Guid的string表示更好? 我只是重构了一些使用string来使用对象的代码,因为在那里有new Guid()调用。 但是这让我想知道性能问题可能是什么。 (集合相当小,但是它们迭代很多次。)

如何根据GUID生成唯一的整数

是否有可能从GUID生成(很可能)唯一的整数? int i = Guid.NewGuid().GetHashCode(); int j = BitConverter.ToInt32(Guid.NewGuid().ToByteArray(), 0); 哪一个更好?

正确的方法来初始化C ++结构

我们的代码包含一个POD(普通的旧数据结构)结构(它是一个基本的C ++结构,它有其他结构和PODvariables,需要在开始时进行初始化)。 根据我所阅读的内容 ,似乎是: myStruct = (MyStruct*)calloc(1, sizeof(MyStruct)); 应将所有值初始化为零,如下所示: myStruct = new MyStruct(); 但是,当结构以第二种方式初始化时,Valgrind稍后会在使用这些variables时抱怨“条件跳转或移动取决于未初始化的值”。 我的理解是有缺陷的,还是Valgrind误报?

如何知道variables是在寄存器中还是在堆栈中?

我正在阅读这个关于isocpp FAQ的 inline 问题 ,代码是这样给出的 void f() { int x = /*…*/; int y = /*…*/; int z = /*…*/; // …code that uses x, y and z… g(x, y, z); // …more code that uses x, y and z… } 那就这么说了 假设一个典型的具有寄存器和堆栈的C ++实现,寄存器和参数在调用g()之前被写入堆栈,然后参数从g()的堆栈中读取并再次读取以恢复寄存器g()返回到f() 。 但是这是很多不必要的读写,特别是在编译器能够使用variablesx , y和z寄存器的情况下:每个variables可以被写两次(作为寄存器并且也作为参数)并被读两次(当在g()并在返回f()期间恢复寄存器。 我很难理解上面的段落。 我尝试列出我的问题如下: 为了使计算机对驻留在主存储器中的一些数据进行一些操作,数据必须首先被加载到某些寄存器,然后CPU才能对数据进行操作。 (我知道这个问题与C ++没有特别的关系,但是理解这个将有助于理解C ++是如何工作的。) 我认为f()是一个函数,与g(x, […]

LINQ:将lambdaexpression式作为要执行的parameter passing并通过方法返回

所以这里是场景:我有一系列不同的存储库类,每个可以使用一个孤立的数据上下文,或一个共享的上下文。 在使用独立上下文的情况下,我希望向基类中添加一个方法,该方法允许我指定lambda作为参数,通过所选资源库的独立上下文来执行该expression式,并返回一个IQueryable结果。 方法签名将如何显示,以及如何将expression式传递给上下文? 我需要的解决scheme尽可能通用,因为任何可能的模型对象/表可以使用。 这里基本上是我想要做的: IAssetRepository repo = new AssetRepository(true); // true indicates isolated context var results = repo.ExecuteInContext<SomeType>(SomeTable.Where(x => x.SomeProp.Equals(SomeValue)));

用moq模拟静态属性

我很新使用MOQ 。 我正在创build一些unit testing用例到HttpModule ,一切正常,直到我按照如下命中一个static属性 this.applicationPath = (HttpRuntime.AppDomainAppVirtualPath.Length > 1) ? HttpRuntime.AppDomainAppVirtualPath : String.Empty; 我不知道如何创build像HttpRuntime.AppDomainAppVirtualPath static类和属性的HttpRuntime.AppDomainAppVirtualPath 。 context , request和response已经被我从moq获得的示例代码模拟得很好。 如果有人能帮助我,我将不胜感激。

如何获得unit testing在x64平台上运行

我有一个C#应用程序必须在x64模式下运行。 问题是我尝试创build在x64应用程序中运行方法的unit testing,unit testing项目甚至不会构build。 当它试图build立时,我得到以下错误。 加载C时出错:….. \ bin \ x64 \ Debug …. UnitTests.dll:无法加载testing容器'C:….. \ bin \ x64 \ Debug …. UnitTests.dll或者它的一个依赖关系。 如果将testing项目程序集构build为64位程序集,则无法加载。 构buildtesting项目程序集时,请为该平台select“任何CPU”。 要在64位处理器上以64位模式运行testing,必须在“主机”选项卡中更改testing设置,以32位进程运行testing。 错误的详细信息:无法加载文件或程序集'file:/// C:…….. UnitTests \ bin \ x64 \ Debug …. UnitTests.dll'或其依赖项之一。 试图加载格式不正确的程序。 我试图将unit testing更改为X64和任何CPU,仍然无法让它运行。 有没有解决这个问题?

可序列化的inheritance

如果从Serializable类inheritance的东西,子类还是Serializable?