Tag: C#的

部分types推断

我有这样一个通用的方法(简化版本): public static TResult PartialInference<T, TResult>(Func<T, TResult> action, object param) { return action((T)param); } 在上面, param是有param的typesobject 。 这是要求的一部分。 当我填写types时,我可以这样称呼它: var test1 = PartialInference<string, bool>( p => p.EndsWith("!"), "Hello world!" ); 但是,我想使用types推断。 最好我想写这个: var test2 = PartialInference<string>( p => p.EndsWith("!"), "Hello world!" ); 但是这不能编译。 我想到的最好的是这样的: var test3 = PartialInference( (string p) => p.EndsWith("!"), "Hello world!" ); […]

在自定义控件中隐藏不需要的属性

这是隐藏派生控件中的属性的方法吗? public class NewButton : Button … [Browsable ( false )] public new ContentAlignment TextAlign { get; set; } 此外,这隐藏在devise器的属性窗口中的属性,但我怎样才能隐藏代码中的属性?

为什么要包括警卫?

我正在学习C. 在这里定义的包含守护程序用于防止在编译时加载相同的代码两次。 为什么我的编译器(GCC)不能检测到它加载了相同的代码两次,并有一个合理的默认行为?

使用M_PI与C89标准

我使用C并尝试访问常量M_PI(3.14159 …)。 我已经导入了math.h头文件,但M_PI常量仍未定义。 通过一些searchStackOverflow我发现我需要添加#define _USE_MATH_DEFINES到我的代码(请参阅下面的示例代码)。 这在正常编译时工作正常,但我需要能够用std=c89标志来编译我正在做的工作。 我应该如何从一些C89代码访问M_PI?

如何在C ++ builder中渲染openGL框架?

我想在C ++ builder中的窗体中初始化一个openGL框架。 我试图复制这里给出的OpenGL启动代码的内容: http : //edn.embarcadero.com/article/10528 我尝试用TFrame1replaceTForm1,然后把它放在窗体devise,但它没有工作。 如何正确地做到这一点,任何经验呢?

在opengl中的对象加载器

我已经在C ++中创build了一个包含opengl的程序,我也想创build一个obj加载器来加载一个obj文件。 我已经创build了两个function: void ReadFile(model *md) { // Open the file for reading OBJINFO.TXT ifstream obj_file("tree.obj"); if (obj_file.fail()) exit(1); // Get the number of vertices obj_file >> md->vertices; // Get the number of faces obj_file >> md->faces; // Get the vertex coordinates for (int i = 0; i < md->vertices; i++) { obj_file >> md->obj_points[i].x; […]

在程序上使用openMP后性能没有提高,可以优化顺序运行

我尽可能地优化了顺序运行的function。 当我使用openMP时,我看不到性能上的好处。 我在1核心机器和8核心机器上试过我的程序,性能是一样的。 随着年份设置为20,我有 1个核心:1秒 8核心:1秒 随着年份设置为25我有 1核心:40秒 8核心:40秒 1核心机器:我的笔记本电脑的英特尔酷睿2双核1.8 GHz,Ubuntu的Linux 8核心机器:3.25 GHz,Ubuntu的Linux 我的程序列举了二叉树的所有可能path,并在每个path上做了一些工作。 所以我的循环大小呈指数增长,我预计openMP线程的占用空间为零。 在我的循环中,我只做了一个variables的减less。 其他所有variables都是只读的。 我只使用我写的函数,而且我认为它们是线程安全的。 我也在我的程序上运行Valgrind cachegrind。 我不完全理解输出,但似乎没有caching缺失或错误的共享。 我编译 gcc -O3 -g3 -Wall -c -fmessage-length=0 -lm -fopenmp -ffast-math 我的完整程序如下。 对不起,张贴了很多代码。 我不熟悉openMP和C,在不失去主要任务的情况下,我不能恢复我的代码。 当我使用openMP时,如何提高性能? 他们是一些编译器标志或C技巧,将使程序运行速度更快? test.c的 #include <stdio.h> #include <stdlib.h> #include <math.h> #include <omp.h> #include "test.h" int main(){ printf("starting\n"); int year=20; int tradingdate0=1; globalinit(year,tradingdate0); […]

循环中的QtCore.QObject.connect只影响最后一个实例

我有一个循环。 我创build了一个QCheckBox并把它放在一个QTableWidget单元格中,一切正常。 在循环的每一步中,我都调用了myslot SLOT的connect函数,但只应用了最后一个QCheckBox实例。 我GOOGLE了很多,发现很多人有我的问题。 我已经应用了他们的解决scheme for row in xrange(len(uniqueFields)): instance = QtGui.QCheckBox(uniqueFields[row], findInstance.tableWidget) print QtCore.QObject.connect(instance, QtCore.SIGNAL(_fromUtf8("stateChanged (int)")), lambda: findInstance.projectsInstance.myslot( "TWCH", findInstance, instance.text(), instance.checkState(), instance)) findInstance.tableWidget.setRowCount(findInstance.tableWidget.rowCount() + 1) findInstance.tableWidget.setCellWidget(row, 0, instance) 注意:我的connect函数返回True 。 如何在枚举所有instances的循环中创buildconnect函数?

为什么stdfax.h应该是第一个包含在MFC应用程序中的?

我想知道为什么这行在每个MFC应用程序存在(这迫使stdafx.h每个文件中包含第一个标题): #ifndef __AFXWIN_H__ #error "include 'stdafx.h' before including this file for PCH" #endif 这种行为背后的原因是什么?

提升C ++序列化开销

我试图用下面的代码来度量序列化开销 const int message_size=1000; std::vector<short> message(message_size); std::string s((char*)(&message[0]), message_size * sizeof(short)); double size= 1000*sizeof(short); double size2= s.size(); double overhead = size2 – size; //is zero 这是对的吗? (这是从vector序列化 ) 我如何测量序列化开销? – 主要问题是测量序列化的向量。 我可以使用Boost进行序列化。