があった場合、私はクラスPCLDebug
でポータブルクラスライブラリを持つデリゲートを作成します。は条件属性
public static class PCLDebug {
public static Action<string> LogLine { get; set; }
}
LogLine
PCL内のものをVS出力ウィンドウに印刷します。ここに私の試みです:
MyPCL.PCLDebug.LogLine = System.Diagnostics.Debug.WriteLine;
ここでの問題System.Diagnostics.Debug.WriteLineデバッグの条件属性を持っているので、コンパイラは、文句ということです:
「たSystem.Diagnosticsとデリゲートを作成することはできませんそれは条件付き属性
を持っているのでLogLine
呼び出しはデバッグのみの環境で動作するかどうか.Debug.WriteLine(文字列)は、」私はそれで実際に元気です。しかし、私はどのようにコンパイラを幸せに保ちますか?
働いていました。ありがとう! – realPT
これは機能しますが、直接割り当てることができないのはなぜですか? – reggaeguitar
@reggaeguitar 'ConditionalAttribute'はコンパイラに関数の呼び出しを省略させますが、直接代入は呼び出しではないため、実際には構築を委任して省略することはできません。ラムダは何もしないか、条件付き関数を呼び出す無名関数を作成するため動作します。どちらの場合でも、代理人は確実に割り当てられます。 – Kyle