c# - C 别名到 C# 帮助

标签 c# c alias

从事一个业余爱好项目,将旧的 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 年代中期),需要其他人帮助进行一些签名转换。

最佳答案

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

#define args( list ) list

你会做类似的事情

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

然后像这样使用它

SomeType result = MyHelpers.Args(someObject);

关于c# - C 别名到 C# 帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16599497/

相关文章:

c# - (JSON.NET) RuntimeBinderException 访问动态 JObject(在一台 PC 上工作,在另一台上失败)

c - 不希望父进程和它的子进程共享同一个文件描述符表

sql - 函数结果的列标题

c - Typedef 结构理解

hadoop - 无效的表别名或列引用 'SYNTHJOIN_xxxxx'

c# - 32 位和 64 位 Windows 之间的日期时间粒度

c# - 如果我将公共(public)方法添加到 C# 类,是否需要重新编译使用该类型的其他程序集?

c# - 从 WinRT 下的 WebView 复制内容

c - 查找数组的大小和单词洗牌

c - 测试 "pthread_create"功能行为