我目前使用的应用程序使用的是一些调试代码。
以下是我的逻辑:
//Do some code that always gets executed
if self.debug
{
//Do some debugging code
}
//Do more code that always gets executed
当我将其发布时,应该删除调试代码,还是只将self.debug设置为false?
我已经看过这个问题:,但是听起来,如果用户想要调试应用程序,就给他们选择,iOS应用程序用户不能调试它,除非他们有Xcode项目。
目前,我试图将PreProcessor实现为ANTLR4 for c#,并在查找相关信息时遇到了很大的困难。我在C#项目的C#源代码中的挖掘并没有真正成功,可悲的是.
我的目标是保留令牌偏移量(这样就不会被预处理的流抛出列和行)示例来粗略解释:
#define foo(bar) foobar(bar + bar * bar / 0.2)
int smthng = 2;
smthng += foo(12); //the ; should be at the same spot like the macro was a function
希望您能向我指出正确的文档,或者提供一个简单的示例解决
有没有办法添加一个预处理器指令来比较编译器使用的C#版本? 例如: public T MyMethod<T>()
{
#if CS_7
return default; // Feature 'default literal' is not available in C# 7.0. Please use 7.1 or greater.
#else
return null; // Ignore the fact that this won't work, it isn't the point of the question
#endif
我看到了如下代码。但我不明白#如何在c#中工作?
using System;
public class Program
{
public static void Main(string[] args)
{
#if (!pi)
Console.WriteLine("i");
#else
Console.WriteLine("PI undefined");
#endif
我正在构建一个C#类库,并使用Visual Web Developer/Visual C# 2010的beta 2。我正在尝试保存关于该库是在哪个版本的.NET下构建的信息。在过去,我可以使用这个:
// What version of .net was it built under?
#if NET_1_0
public const string NETFrameworkVersion = ".NET 1.0";
#elif NET_1_1
public const string NETFrameworkVersion = ".NET
CPython有没有类似于.net c# PInvoke的东西?
例如,我有some.dll或some.so,并且希望在运行时注册其中的一些函数,并开始在我的程序中使用这些函数。
在C#中,您可以执行以下操作:
// Marshal.cs
using System;
using System.Runtime.InteropServices;
namespace CSharpIterators
{
class MainClass
{
[DllImport("msvcrt.dll")]
public static extern in
如果C#版本不支持该程序中使用的语言功能,C#程序如何才能检测到正在编译该程序?
C#编译器将拒绝该程序,并在遇到它不支持的语言的功能时生成一些错误消息。这并没有解决问题,即说明正在使用太旧的C#编译器版本或不支持所需版本的C#的C#编译器编译程序
理想情况下,它应该像这样简单
#if CS_VERSION < 3
#error CSharp 3 or later is required
#end
从我在C#文档中收集的信息来看,似乎没有一种方法可以像C/C++那样#定义变量。这是正确的吗?我只是想确认一下我没有忽略什么。本质上,我希望在我的代码中使用#define变量/注释/:
#define _CLASS_ foo123
...
/// Here is documentation for my class _CLASS_
这是一个完全虚构的用例,但希望这能让人明白这一点。
我正在并行处理一个现有的FORTRAN应用程序。我不想直接改变它的部分代码,所以我使用预处理器指令来完成我的目标。这样,我就能够维护代码的可读性,并且不会在已经测试过的部分代码中导致错误。但是,当我试图用GNU预处理器对我的源代码进行预处理时,我会得到以下错误消息(gcc版本4.7.2 (Debian4.7.2-5)):
test.f:9:0: error: detected recursion whilst expanding macro "ARR""
这个简单的测试程序演示了我的问题:
PROGRAM TEST
IMPLICIT NO