- PR -

アンパサンドの使い方

1
投稿者投稿内容
KNGY
会議室デビュー日: 2008/04/28
投稿数: 8
投稿日時: 2008-08-08 11:49
いつもお世話になっております。
初歩的な質問なのですが、


private enum aaa
{
a1 = 0,
a2 = 1,
a3 = 2
}
public MethodA()
{
if(aaa.a1 & aaa.a2) == aaa.a1 )
{
           //処理
         }
}


と"&"を使用してenumの値をつなげている?箇所があるのですが、
何を行っているのでしょうか?


じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-08-08 12:14
引用:

KNGYさんの書き込み (2008-08-08 11:49) より:

と"&"を使用してenumの値をつなげている?箇所があるのですが、
何を行っているのでしょうか?


VB の文字列と同じ感覚で考えているのでそう見えるだけです (そもそも今回は文字列型ではありません)。 列挙型のメンバを繋げているわけではなく、ビット演算をしているだけです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
GENZO
大ベテラン
会議室デビュー日: 2003/11/26
投稿数: 111
お住まい・勤務地: 名古屋
投稿日時: 2008-08-08 12:17
引用:

KNGYさんの書き込み (2008-08-08 11:49) より:
と"&"を使用してenumの値をつなげている?箇所があるのですが、
何を行っているのでしょうか?



コード例のほうはよくわかりませんが、"&"のほうは、ビット演算だと思います。
↓のFlagsAttributeに関する説明がわかりやすいと思います。
http://msdn.microsoft.com/ja-jp/library/sbbt4032(VS.80).aspx



KNGY
会議室デビュー日: 2008/04/28
投稿数: 8
投稿日時: 2008-08-08 12:32
じゃんねっと様、GENZO様早速の返答どうもありがとうございます。

ビット演算ですか、、普段使わないのですっかり忘れておりました。

どうもありがとうございました。


また、何かの時によろしくお願い致します。
1

スキルアップ/キャリアアップ(JOB@IT)