0

如果你在 C 中有这样的宏:

 #define SLICE_VERSION 20110614

如何在 C# 脚本中使用此宏?

我应该编组它吗?如何?

我应该在 C# 中重新定义它吗?我知道 C# 没有#define 宏,但也许我可以将它定义为静态变量。

或者我可以以某种方式引用它吗?

同样,如果你在 C 中有一个全局变量,你如何在 C# 脚本中使用它?

我已经看过关于编组类、结构、数组、联合和许多其他东西的教程,从 C/C++ 到 C#,但我找不到任何关于如何编组常量的提示......或者我必须编组它?可以直接引用吗?

顺便说一句,我发现这是一个关于 Mono 互操作的非常好的教程:http ://www.mono-project.com/Interop_with_Native_Libraries#Introduction

4

1 回答 1

2

我应该在 C# 中重新定义它吗?

是的。在 C# 中,您需要使用const

const int SLICE_VERSION = 20110614;

话虽如此,我也会经常重命名它以使其更符合 C# 标准:

const int SliceVersion = 20110614;

根据它的使用方式,您也希望明确指定访问修饰符。此外,根据使用情况,您可能希望使用不同的类型(Int32 可能不正确 - 您可能需要 UInt32 等)。C/C++ 中宏的一个缺点是它们不是强类型的,因此如果没有看到用法,就无法知道此处预期的确切类型。

于 2012-04-07T20:40:39.667 回答