在进行Windows Mobile开发时,我应该使用哪种语言? C#或C ++还是其他什么?为什么一个比其他人好?
答案 0 :(得分:5)
这取决于你的编码。
可以通过C#中的P / Invoke对操作系统进行本机调用,但通过本机C ++可以更容易地使用。您还需要使用C ++来使用一些未被Compact Framework包装的硬件。
大多数硬件(GPS,相机等)都可以通过CF获得。如果您正在使用Win Mobile 6.x设备,那么使用C#可能会更好。除硬件外,Pocket Office(POOM)对象模型也可用于C#,因此您可以与它集成。
值得注意的是,大多数对Windows Phone 7的引用都是指托管代码和Silverlight的可能性。使用Silverlight时,您必须使用C#进行编码。
除非您的应用程序性能很高或者内存非常吝啬,否则请使用C#或VB.NET。
斯科特
答案 1 :(得分:2)
主要取决于任务。
c ++有以下优点/缺点:
C#:
答案 2 :(得分:2)
对此没有正确的答案,因为没有一个通用的“更好”的定义。如果您已经了解C ++并且已经有很多C ++代码资产,那么C ++看起来确实很吸引人。如果你知道c#而不是C ++,那么C#肯定看起来很有吸引力。
C ++应用程序加载速度更快,但对于许多应用程序来说,这并不相关。 C#应用程序当然可以更快地编写,但它们也没有确定性。我再也不会在C ++中尝试用户界面了,我也不会考虑用C ++进行数据库访问。我不会在C#中编写驱动程序,或者是shell扩展。
一般来说,我提供的大部分解决方案都是两者的混合体。 C#有其优势。编写速度快,调试和单元测试更快,很难(尽管不是不可能)创建泄漏,对于某些操作(如数据访问或XML解析),它更容易。
C ++也有自己的优势,比如执行速度(尽管C#可以在许多方面变得同样快),确定性以及插入需要原生入口点的东西的能力。
那么我的答案呢?你需要知道两者,并且可能使用两者来编写你的解决方案。您最终使用的百分比取决于您的最终目标。
答案 3 :(得分:1)
取决于。
至少提出一个特定的用例。并可能使用SO搜索? :)
C++ or C# to program mobile barcode device?
编辑: 显然,其他人的抽签速度更快,并给出了更明确的答案。不过,我仍然建议阅读上述SO线程。
答案 4 :(得分:1)
根据我的经验,从c#开始更容易,如果紧凑框架提供的api足够你,那么你就可以了。
另一方面,如果你的项目有点复杂,或者如果你想做一些不在紧凑框架中的事情,你可能最终需要在c ++中创建一个帮助器.dll。即使在这种情况下,您也可以在c#中使用主程序,并在c ++中编写助手dll。
如果你直接使用c ++编程,你可能会因为你的原始性能比c#更好而受益,如果你正在进行游戏,那就很好。
但是你也会受到Windows移动操作系统的限制。像每个进程最多32MB,或者所有.dll共享相同的地址空间。
所以最终它取决于计划做什么和你的经验。