2016-11-04 5 views
2

私はこのようなことをしたいと思います。 DEBUGが定義されている場合、名前空間はTest、名前空間はTestBです。以下のサンプルコードを参照してください。私はそれをすることができますか、これを達成するための良いアイデアがありますか?前もって感謝します!Cのネームスペースを動的に変更します

# if DEBUG 
    [SomekindofAttribute(Namespace = "Test")] 
#endif 
namespace TestB 
{ 

    public class Program 
    {} 
} 
+0

[Dynamic Namespace Switching](http://stackoverflow.com/a/8008989/3796048) –

+0

からいくつかアイデアを得るかもしれません。私は正しい答えを得ていると思います。しかし、あなたにすべて同じことをありがとう –

答えて

1

あなたはこれを行うことができます。

#if DEBUG 
namespace TestB 
#else 
namespace Test 
#endif 
{ 
    public class Program { } 
} 

を、これは非常に悪いアイデアのように見えますけど。 Programを使用しているすべては、using宣言についても同じプリプロセッサディレクティブを実行する必要があります。

+0

ああ、私はコードがこのように書くことができるとは考えていませんでした。あなたの迅速な対応に感謝します。 –

4

なぜ名前空間宣言自体に条件を追加しないのですか?
私はあなたの質問を正しく理解している場合は、以下のコードを使用することができます。

#if DEBUG 
namespace Test 
#else 
namespace TestB 
#endif 
{ 
    public class Program 
    { 
     public static void Main() 
     { 
      Console.WriteLine(new Program().GetType().FullName); 
      Console.ReadLine(); 
     } 
    } 
} 

ご希望のものを確認してください。

+0

ありがとう。これは私が探しているものです、私はコードがこのように書くことができるとは考えていませんでした。しかし、ロブはあなたよりも1分早く回答しました。:) –

+0

@GoddessGuard実際に私は最初にアナウンスしました。私は02:33:26 UTCに答えて、彼は02:34:08 UTCに答えました。でも気にしないで。 :) –

関連する問題