C#:練習曲、パート1

ircネットワークのc#チャンネルで、 Rusnetはいわゆる人々を楽しもうとしています スケッチ。 これらは短いタスクであり、その解決策としては、言語と実装の微妙な点を知る必要があり、言及された微妙な点に精通していない人にはまったく明らかではありません。
チャンネル番号1の研究は既に解明されていますが、ハブロコミュニティはおそらくそれをまだ知らない可能性が高いです。

エチュードのスケッチ中にチャンネルにいなかった場合は、コメントしてください。 問題が人々によって解決された後(または長期間解決策がない場合)、ここに解決策が表示されます。

質問は次のとおりです。

この場合、次のコードを記述する必要があります(提案された設計の適切性について議論する価値はありません。これはすべて真空の球形馬です)。
bool b = x ? true : false;



ちなみに、この投稿を書く動機の1つは、問題を解決するための報酬としてHabrへの招待を使用することでした(これまでのところ、Google Waveへの招待で終わりました)。 だからカルマを手伝ってください。

PSよく、よくやった、非常に迅速に。
解決策です。 オブジェクトxの型は演算子trueとfalseを定義する必要があり、bool型へのキャスト演算子を定義してはなりません。
class X
{
public X(bool b)
{
inner = b;
}
private bool inner = false;
public static bool operator true(X x)
{
return x.inner;
}

public static bool operator false(X x)
{
return !x.inner;
}
}
...
X x = new X(false);
bool b = x ? true : false;


Baksユーザーが最初に明示的なソリューションを提供し、Cyber​​Core habruiserは、指定されたクラスにほぼ一致するSqlBooleanクラスがあることを示しました(ただし、明示的な型変換演算子があります)。
みんなありがとう!

PPS画像を完全に明確にするために、if演算子、while演算子などの構造体、および三項演算子でtrueおよびfalse演算子を使用できることを指摘します。 さらに、ブール変数の明示的な割り当てには他の演算子が必要です

.NETに移植されたカルマに感謝します。

Source: https://habr.com/ru/post/J76901/


All Articles