我正在检查C#中的int和float类型,甚至他们有"ToString"等方法,这意味着它们是从System.Object继承的.但这不会导致性能下降吗?据我所知,由于性能的原因,他们没有像java中的int对象那样创建基类型.这个规则也不适用于.NET吗?如果确实如此,那么这意味着.NET比Java慢吗?但实际上并非如此,因为我在C#中创建的程序比我在Java中编写的程序要好.那么我有什么不明白的地方吗?
我最近做了一些Windows Api编码(仍在做).我试图找到将WNDCLASSEX包装成C++类的最佳方法,当我有这个疯狂的想法时,WNDCLASSEX是一个结构对吗?(尽管它是用c编写的)并且在C++中结构被视为类,所以为什么我不将我的WinCLass声明为WNDCLASSEX的衍生物,所以我试过:
class WinClass : protected WNDCLASSEX
Run Code Online (Sandbox Code Playgroud)
它奏效了!然后我尝试使用它与SDL结构,但那些也有效.但是当我从它们派生类时,某些结构(特别是SDL结构)要么不编译或导致无法解释的运行时错误.所以我的问题是:推荐使用这种C结构吗?它实际上是专业人士使用的,还是只是一个蹩脚的黑客?我应该使用我的包装器还是应用程序,还是只会引入无法解释的错误?
我最近开始制作一个GTK +的C++包装器(没什么特别的,只是将所有内容都包装到C++类中以便于开发,在内部使用)并且对于已经很慢的 Gtk +我几乎到处都使用内联函数会导致最小的性能膨胀.看看几个类函数......
class Widget : public Object
{
public: // A few sample functions. gwidget is the internal GTK+ widget.
void Show(void) { gtk_widget_show(GTK_WIDGET(gwidget)); }
void ShowNow(void) { gtk_widget_show_now(GTK_WIDGET(gwidget)); }
void Hide(void) { gtk_widget_hide(GTK_WIDGET(gwidget)); }
void ShowAll(void) { gtk_widget_show_all(GTK_WIDGET(gwidget)); }
public: // the internal Gtk+ widget.
GtkWidget* gwidget;
};
Run Code Online (Sandbox Code Playgroud)
虽然几乎不存在性能膨胀,启动时间和内存使用情况完全相同,但文件大小却急剧增加.一个C Gtk +样本窗口生成6.5 kb,而使用我的包装器的样本窗口生成22.5 kb.所以我需要一些建议.我应该继续使用内联函数吗?我希望我的应用程序高效,我可以在文件大小上稍微妥协,就像我可以接受它,即使使用我的包装器但不是更多的6.5 kb C GTK +程序生成像400-500 kb.我不希望我的包装器生成像wxWidgets或MFC那样的巨大EXES.那么使用内联函数还是值得使用普通函数呢?
注意:我的所有函数只占用 …
我正在尝试让 Pygame 运行一些 mpg 视频作为我的角色扮演游戏的介绍。但它不起作用。我已阅读 pygame 文档,它说视频支持当前不稳定,我应该使用 pymedia 代替。我个人对 pymedia 搞不清楚。那么有什么方法可以用 pygame 播放视频吗?
我讨厌.NET程序如何让你下载.NET Framework来运行它们,所以我想用我的程序嵌入MONO Runtime.是否有任何第三方软件可以轻松完成,或者我需要手动或通过C/C++进行操作?此外,它需要多少额外的硬盘空间,这样做有什么缺点吗?
PS如果我需要用C/C++来做,你能给我一些示例代码吗?
我有一个(仅标头)C++ 库,我希望将其移植到 C#。它是我为特定目的制作的 win api 的包装器。我想将它移植到 C#,因为我想使用 C# 进一步开发它。什么是最有效(也是最简单?)的移植方式。请注意,我不想要忙碌的事情,因为我不想花更多的时间移植库而不是首先制作该库。那么有没有办法呢?
我对C语言中的SDL没有任何问题,但它有点累人.使用结构做没有类的东西,或者更糟糕的是,不得不自己将这些函数包装在一个类中等等.我想知道是否有一个好的,成熟的,设计良好的(即没有宏,使用模板和STL)包装器(绑定) ?)SDL?
例如,如果我用Java创建JVM,是否有可能使我实现的实现比我用于构建此实现的原始实现更快,即使我的实现是基于原始实现构建的,甚至可能依赖于在那个实现?
(令人困惑......)
看看PyPy.它是用Python制作的Python的JIT编译器.这没关系,但是它如何声称比它正在使用并依赖于Python的原始实现更快?
我只是在论坛中讨论是否有一个替代的Windows图形库到GDI和Direct X. 有人提到WinDIB.可悲的是,他没有解释更多.
现在我搜索了谷歌.
Windows DIB似乎没有维基百科的文章.
似乎某些图形库(如SDL)使用WinDIB后端.
那究竟什么是WinDIB?它有任何文件吗?我在哪里可以了解更多信息?
基本上我想为LINQ调整这段代码:
private Tile CheckCollision(Tile[] tiles)
{
foreach (var tile in tiles)
{
if (tile.Rectangle.IntersectsWith(Rectangle))
{
return tile;
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
代码检查每个图块并返回与对象发生碰撞的第一个图块.我只想要第一个瓷砖,而不是像我使用的那样我会得到的瓷砖数组:
private Tile CheckCollision(Tile[] tiles)
{
var rtn =
from tile in tiles
where tile.Rectangle.IntersectsWith(Rectangle)
select tile;
}
Run Code Online (Sandbox Code Playgroud)
我该怎么办?