Tag: 编译

我可以检查C#编译器内联方法调用吗?

我正在写一个XNA游戏,我在那里进行逐像素碰撞检查。 通过移位int和按位ORing来检查这种情况的循环通常很难阅读和理解。 我想添加私有方法,如private bool IsTransparent(int pixelColorValue)以使循环更具可读性,但我不希望方法调用的开销,因为这是性能非常敏感的代码。 有没有办法强制编译器内联这个调用,或者我会这样做,我只希望编译器会进行这种优化? 如果没有办法强制执行此操作,是否有办法检查方法是否内联,而不是读取反汇编? 如果内联并且没有其他调用者存在,该方法是否会显示在reflection中? 编辑:我不能强迫它,所以我可以检测到它吗?

在应用程序中编译C#代码

我想要一些代码来编译我的TextBox中的代码(例如)。 我的意思是我想在运行程序后编译代码。 我怎样才能做到这一点?

为什么这个编译错误

为什么我写 void Main() { string value = @”C:\”; if (!string.IsNullOrEmpty(value)) { string sDirectory = Path.GetDirectoryName(value); } } 它汇编。 如果我写的话 void Main() { string value = @”C:\”; if (!string.IsNullOrEmpty(value)) string sDirectory = Path.GetDirectoryName(value); } 不是吗? 很明显,从纯粹的function观点来看, 第二个例子中变量的声明是无用的,但为什么它在第一个例子中神奇地变得有用,所以呢? 两个例子产生的IL代码完全相同 。 IL_0000: ldstr “C:\” IL_0005: stloc.0 IL_0006: ldloc.0 IL_0007: call System.String.IsNullOrEmpty IL_000C: brtrue.s IL_0015 IL_000E: ldloc.0 IL_000F: call […]

XAML条件编译

有没有一种简单的方法可以在我的xaml文件中使用我用于c#代码的相同条件编译符号?