Javac#とJavaって基本的な構文は相当似てるんですが、やっぱり違う言語なので微妙に違います。両方を使い比べてみて、やっぱり全く違うんだな、と感じたことをいくつか書いてみようと思います。同じパッケージ内でアクセス可能お互い全然違うのが,internalとprivate-packageです。アクセス範囲のコントロールをする意図は同じですが公開される範囲が全然違います。internalの方が全然広いです。この違いで開発単位を割り当てる際にパッケージで1人とかEXE、DLLで一人のような判断に影響する場合があります。アクセス修飾時を省略したときの挙動Javaの場合アクセス修飾子を省略すると、自動的に「package-private」となります。このアクセス修飾子は予約後にありません。従って、「指定したいときは省略する」と考えてると一瞬あれっ?という感が漂います。この場合、指定しないとprivate-packageだけど公開したいから他のアクセス修飾子を付けると考えたほうが自然です。{ただ、他のメンバーには必ずアクセス修飾子が付いてる中で、省略してるメンバーが突然出てくると、少々気持ち悪い人も中にはいるようです。{のように書く人も中には居るようです。c#の場合アクセス修飾子を省略すると「クラスはinternal」、「メンバーはprivate」になります。c#はアクセス修飾子は全て予約後になっています。自分の意図したアクセスレベルを明示的に書くことができます。人によってはばらばらで気持ち悪いと感じる人も居るようです。{は完全に同じ意味です。最初にc#を使っていた自分としてはこの挙動は割と衝撃を受けました。インスタンスを「new」を使って宣言した直後に中括弧を付けたときの挙動です。簡単に言うと、匿名クラスがその時に宣言できます。}}すると、めんどくさい事しないで済むよねということになります。再利用できないという欠点もあります。Java8からはクロージャが使えるのでもう少しめんどくさい感は減ります。*2c#の場合c#の場合、挙動をその場で定義することはできません。中括弧からは後ろは公開メンバーの初期化(オブジェクト初期化子、コレクション初期化子の利用)ができます。»Profile受託ソフト会社員でWin系業務屋。趣味でCocos2d-x/C++を触っています。etc...主に受託・開発ネタ、Windowsの事、Srellaris、ゲーム制作の進捗の事を喋ります。Core3.xとUnityでAES暗号化を利用するC#の標準機能でデータを圧縮・展開するC#で属性を利用して処理に制約の説明を追加するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。