Tag: C#的

WPF图像资源

我主要来自网页和Windows窗体背景。 对于一个新项目,我们将使用WPF。 为了便于说明,WPF应用程序需要10 – 20个小图标和图像。 我正在考虑将这些作为嵌入式资源存储在程序集中。 这是正确的路吗? 如何在XAML中指定Image控件应该从嵌入资源加载图像?

如何在C中正确使用extern关键字

我的问题是关于什么时候应该用C中的extern关键字引用一个函数。 我没有看到什么时候应该在实践中使用。 在编写程序时,我使用的所有功能都可以通过我已经包含的头文件提供。 那么为什么extern能够访问头文件中没有公开的东西呢? 我可能会考虑extern如何不正确地工作,如果是的话,请纠正我。 编辑:如果你是extern东西,当它是默认的声明没有关键字在头文件?

浮动和双重之间的区别

我知道,我已经读过双精度和单精度之间的区别,但是他们应该给大多数情况下相同的结果吗? 我在编程竞赛中解决了一个问题,并且计算的浮点数并不是很大,所以我决定使用float而不是double,并且检查了它 – 我得到了正确的结果。 但是,当我发送解决方案时,它说只有十个测试中的一个是正确的。 我一遍又一遍地检查,直到我发现使用double的float不一样。 我把计算结果加倍,输出结果加倍,程序给出了相同的结果,但这次它正确地通过了所有10个测试。 我再说一遍,输出结果是相同的,结果是相同的,但是放置浮动不起作用 – 只有两倍。 这个数值并没有那么大,在同样的测试中,程序在浮点数和双精度数上都得到了相同的结果,但在线判断只接受了双精度解。 为什么? 有什么不同?

为什么单独循环中的元素添加比组合循环中快得多?

假设a1 , b1 , c1和d1指向堆内存,并且我的数字代码具有以下核心循环。 const int n = 100000; for (int j = 0; j < n; j++) { a1[j] += b1[j]; c1[j] += d1[j]; } 该循环通过另一个外循环执行10,000次。 为了加快速度,我将代码更改为: for (int j = 0; j < n; j++) { a1[j] += b1[j]; } for (int j = 0; j < n; j++) { c1[j] += […]

暂停事件没有提高使用WinRT

我遇到了使用WinRT在Windows Phone 8.1上暂停事件的问题,它不会触发。 我不知道为什么。 这是我的代码: /// <summary> /// Initializes the singleton application object. This is the first line of authored code /// executed, and as such is the logical equivalent of main() or WinMain(). /// </summary> public App() { InitializeComponent(); Suspending += OnSuspending; #if DEBUG this.displayRequest = new DisplayRequest(); #endif } /// <summary> /// Invoked […]

可以在C#中动态添加属性吗?

是否有可能在运行时添加属性或在运行时更改属性的值?

C##包括警卫

解决了 真正帮助我的是,我可以在.cpp文件中包含头文件,而不会导致重新定义的错误。 我是C ++新手,但是我在C#和Java中有一些编程经验,所以我可能会错过C ++特有的基本东西。 问题是我真的不知道什么是错的,我会粘贴一些代码来解释这个问题。 我有三个类,GameEvents,Physics和GameObject。 我有他们每个人的标题。 GameEvents有一个Physics和一个GameObjects列表。 物理学有一个GameObjects列表。 我想要实现的是我希望GameObject能够访问或拥有一个物理对象。 如果我简单地在GameObject中包含“Physics.h”,我就会得到“错误C2111:'ClassXXX':'class'type redifinition”,据我所知。 而这正是我认为#include-guard会帮助我,所以我在我的Physics.h中加入了一个包含后卫,因为这是我想包含两次的头文件。 这是它的样子 #ifndef PHYSICS_H #define PHYSICS_H #include "GameObject.h" #include <list> class Physics { private: double gravity; list<GameObject*> objects; list<GameObject*>::iterator i; public: Physics(void); void ApplyPhysics(GameObject*); void UpdatePhysics(int); bool RectangleIntersect(SDL_Rect, SDL_Rect); Vector2X CheckCollisions(Vector2X, GameObject*); }; #endif // PHYSICS_H 但是,如果我在我的GameObject.h中包含“Physics.h”,现在是这样的: #include "Texture2D.h" #include "Vector2X.h" #include […]

编译器和C ++中的评估顺序

好的,我知道标准规定C ++实现可以选择函数的哪个顺序参数进行评估,但是在实际上会影响程序的情况下,是否有实际的“利用”这个实现呢? 经典示例: int i = 0; foo(i++, i++); 注意:我不想找人来告诉我,评估顺序是不可靠的,我很清楚这一点。 我只关心编译器是否确实按照从左到右的顺序进行评估,因为我的猜测是如果他们做了很多写得不好的代码就会中断(正确的,但他们仍然可能会抱怨)。

运营商优先级与评估顺序

术语“运算符优先级”和“评估顺序”是编程中非常常用的术语,对于程序员来说是非常重要的。 而且,据我了解,这两个概念是紧密相连的。 谈论表情时,离不开对方。 让我们举一个简单的例子: int a=1; // Line 1 a = a++ + ++a; // Line 2 printf("%d",a); // Line 3 现在,显然第二Line 2导致未定义行为,因为C和C ++中的序列点包括: 在&&(逻辑AND)的左和右操作数的评估之间,|| (逻辑OR)和逗号运算符。 例如,在表达式*p++ != 0 && *q++ != 0 ,子表达式*p++ != 0所有副作用在任何尝试访问q之前完成。 在三元“问号”算子的第一个操作数和第二个或第三个操作数的评估之间。 例如,在表达式a = (*p++) ? (*p++) : 0 a = (*p++) ? (*p++) : 0在第一个*p++之后有一个序列点,这意味着它已经被执行第二个实例的时间增加了。 在完整的表达式结尾。 这个类包括for语句中的表达式语句(如赋值a=b; ),返回语句,if,switch,while或do-while语句的控制表达式以及所有三个表达式。 在函数调用中输入函数之前。 […]

Type.GetType(“namespace.abClassName”)返回null

此代码: Type.GetType("namespace.abClassName") 返回null 。 我已经在使用: using namespace.ab; 更新: 该类型存在,它在一个不同的类库中,我需要通过字符串名称来获取它。