C#で「何もしない」というキーワードはありますか?
たとえば、アクションの1つがアクションを実行しないという三項演算子を使用したいとします。
officeDict.ContainsKey("0") ? DO NOTHING : officeDict.Add("0","")
C#で「何もしない」というキーワードはありますか?
たとえば、アクションの1つがアクションを実行しないという三項演算子を使用したいとします。
officeDict.ContainsKey("0") ? DO NOTHING : officeDict.Add("0","")
いいえ、そのようなキーワードはありません。また、?:
演算子はアクションを決定するためのものではありません。これは、値(またはより技術的には値の式)を決定するためのものです。
代わりに、この種の意思決定にif条件を使用したいと考えています。
if (!officeDict.ContainsKey("0"))
officeDict.Add("0", "");
他の人が指摘しているように、if
ここではステートメントを使用する方がはるかに慣用的です。
しかし、あなたが尋ねたことに答えるために、ラムダとデリゲートを使用することができます:
// Bad code, do not use:
(officeDict.ContainsKey("0") ? (Action)(() => { }) : () => officeDict.Add("0", ""))();
これは悪い考えですが、実際には、属性を使用して「DoNothing」メソッドを作成し、条件付きでメソッド呼び出しを発行できます(これは、「NEVER」条件を#defineしないという規則に依存していることに注意してください)。 ConditionalAttributeのため、メソッドの呼び出しは発行されず、基本的にコードの「nop」セクションがあります。
[Conditional("NEVER")]
public void DoNothing()
{
}
それでも、他のいくつかがすでに指摘しているように、これはお勧めできません。
いずれかの場合にのみ何かを実行したいのに、なぜ三項演算子を使用したいのですか?条件を逆にしてifステートメントを使用してみませんか?
if (!officeDict.ContainsKey("0"))
{
officeDict.Add("0","")
}
三項演算子は式用であり、ステートメント用ではありません。
あなたはif
声明が欲しい。
コードが次のようになるように、ifステートメントを使用しないのはなぜですか。
if(!officeDict.ContainsKey("0"))
officeDict.Add("0","")
簡単に書いてみませんif
か?
if (!officeDict.ContainsKey("0"))
officeDict.Add("0","")
はるかに読みやすくなります。
これにIFステートメントを使用してみませんか?
if(!officeDict.ContainsKey("0")) officeDict.Add("0","");
代わりにifステートメントを使用してください。
if (!officeDict.ContainsKey("0"))
{
officeDict.Add("0","")
}
これを試してみてください(grinns)
if (officeDict.ContainsKey("0"))
Thread.Sleep(1)
else
officeDict.Add("0","")