Tag: C#的

在运行时加载XAML?

首先是一些背景:我正在研究一个应用程序,我正在尝试遵循MVVM约定写它。 我想要做的一件事就是能够给应用程序提供不同的“皮肤”。 同一个应用程序,但为一个客户端显示一个“皮肤”,为另一个客户显示不同的“皮肤”。 所以我的问题是: 1.是否可以在运行时加载xaml文件并将其“分配”给我的应用程序? 2. xaml文件可以是驻留在不同文件夹中的外部文件吗? 3.应用程序能否轻松地切换到另一个xaml文件,或仅在启动时间? 那么我应该从哪里开始寻找这方面的信息呢? 哪些WPF方法(如果存在)处理这个function? 谢谢! 编辑:我想要做的“剥皮”的types不仅仅是改变我的控件的外观。 这个想法是有一个完全不同的用户界面。 不同的button,不同的布局。 有点像一个版本的应用程序将完全为专家function,另一个版本将简化初学者。

枚举到stringC ++

可能重复: 有一个简单的脚本来将C ++枚举转换为string吗? 我通常发现我需要将枚举转换为c + +中的string 我总是这样做: enum Enum{ Banana, Orange, Apple } ; char * getTextForEnum( int enumVal ) { switch( enumVal ) { case Enum::Banana: return "bananas & monkeys"; case Enum::Orange: return "Round and orange"; case Enum::Apple: return "APPLE" ; default: return "Not recognized.."; } } 有这样一个更好的或公认的成语吗?

数组边界检查.NET 4及以上的效率

我感兴趣的是如何有效的低级algorithm可以在.net。 我想让我们select在C#中编写更多的代码,而不是将来编写C ++代码,但是一个绊脚石就是.NET中的边界检查,这种检查是随循环和随机访问数组而发生的。 一个激励的例子是计算两个数组中相应元素的乘积之和的函数(这是两个向量的点积)。 static void SumProduct(double[] X, double[] Y) { double sum = 0; int length = X.Length; if (length != Y.Length) throw new ArgumentException("X and Y must be same size"); for (int i = 0; i < length; i++) // Check X.Length instead? See below sum += X[i] * Y[i]; } 从我所知道的,并不知道足够的IL或x86来检查,编译器不会优化X 和 […]

在C ++中创build稀疏数组的最佳方式是什么?

我正在研究一个需要处理巨大matrix的项目,特别是用于copula计算的金字塔加法。 简而言之,我需要在matrix(multidimensional array)中的零海中追踪相对较less的值(通常值为1,在极less数情况下超过1)。 稀疏数组允许用户存储less量值,并假定所有未定义的logging为预设值。 由于在物理上不可能将所有值存储在内存中,因此我只需要存储less量的非零元素。 这可能是数百万条目。 速度是一个重要的优先事项,我也想在运行时dynamicselect类中的variables数量。 我目前正在使用二叉search树(b-tree)来存储条目的系统上工作。 有谁知道更好的系统?

C#列表parsing简介

我如何在C#中执行列表推导?

互斥体应该是可变的吗?

不知道这是一个风格的问题,或者有一个硬性的规则… 如果我想保持公共方法接口尽可能const,但使对象线程安全,我应该使用可变互斥锁? 一般来说,这是一种很好的风格,还是应该使用非const方法的接口呢? 请certificate你的看法。

Eclipse IDE中的C ++错误“nullptr未在此作用域中声明”

我正在运行Eclipse Helios,并且安装了g ++ – 4.6。 希望我没有错,g ++ 4.6实现了C ++ 11的function。 我创build了一个使用nullptr和auto关键字的C ++项目。 该版本提供了以下错误: ../{filename}.cpp:13:13: error: 'nullptr' was not declared in this scope ../{filename}.cpp:14:2: warning: 'auto' will change meaning in C++0x; please remove it [-Wc++0x-compat] 其实它昨天一直在修build。 今天我从这里得到这些东西。 请帮我解决这个问题。

你能否通过保证multithreading不能访问相同的内存来避免locking?

说我有一个大型的数组,我想用多个线程处理内容。 如果我将每个线程委托给一个特定的部分,保证没有重叠,这是否消除了任何locking的需要,假设线程不访问数组之外​​的任何其他内存? 像这样的东西(伪代码): global array[9000000]; do_something(chunk) { for (i = chunk.start; i < chunk.end; i++) //do something with array } main() { chunk1 = {start: 0, end: 5000000}; chunk2 = {start: 5000000, end: 9000000}; start_thread(thread1, do_something(chunk1)); start_thread(thread2, do_something(chunk2)); wait_for_join(thread1); wait_for_join(thread2); //do something else with the altered array }

在发生exception之后继续在Visual Studiodebugging器中

当我debugging一个C#程序,并得到一个exception抛出(或由框架引发的代码抛出),IDE停止,并让我到我的代码中的相应行。 现在一切都很好。 然后按“F5”继续。 从这一刻起,它就像我在无限循环中一样。 IDE总是让我回到例外行。 我必须Shift + F5 (停止debugging/终止程序)摆脱他的。 我在这里和一些同事交谈,他们告诉我,这也发生在他们身上。 发生了什么?

如何获得Window实例的hWnd?

我的WPF应用程序有多个窗口,我需要能够获得每个Window实例的hWnd,以便我可以在Win32 API调用中使用它们。 我想要做的例子: Window myCurrentWindow = Window.GetWindow(this); IntPtr myhWnd = myCurrentWindow.hWnd; // Except this property doesn't exist. 什么是最好的方法来做到这一点?