0

从事一个爱好项目,将旧的 C 应用程序转换为 C#。

在 C 中,他们会像这样定义常量/别名:

#define args( list )            list
#define DECLARE_DO_FUN( fun )       DO_FUN    fun
#define DECLARE_SPEC_FUN( fun )     SPEC_FUN  fun
#define DECLARE_SPELL_FUN( fun )    SPELL_FUN fun
void    init_descriptor     args( ( int control ) );
bool    read_from_descriptor    args( ( DESCRIPTOR_DATA *d ) );
bool    write_to_descriptor args( ( int desc, char *txt, int length ) );

C# 中的等价物是什么?

由于我不再热衷于 Ansi-C(上次是 90 年代中期),因此需要其他人帮助进行一些签名转换。

4

1 回答 1

1

C# 中没有宏之类的东西,这是有充分理由的。也没有相应的功能。考虑宏意味着不考虑 C# 和/或 OOP。所以而不是做

#define args( list ) list

你会做一些类似的事情

public class MyHelpers
{
    public static T Args<T>(T list)
    {
        return list;
    }
}

然后像这样使用它

SomeType result = MyHelpers.Args(someObject);
于 2013-05-17T00:21:57.757 回答