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 に答える