C#とJavaのHello worldを見比べて。
package com.mrstar; public class Main { public static void main(String[] args) { System.out.println("Hello world!"); } }
using System; namespace HelloCSWorld { class MainClass { public static void Main (string[] args) { Console.WriteLine ("Hello World!"); } } }
見比べて思ったこと。
中括弧「{」の位置にすごい違和感が...
業務では,JavaでAndroidを開発していて,
コントリビューター用のコーディングスタイルですが,
Code Style Guidelines for Contributors
http://source.android.com/source/code-style.html#use-standard-brace-style
に沿うようなスタイルで開発しています。
このスタイルでは,中括弧は改行していません。
(上記のページのBrace Style参照)
一方で,C#の手元にある参考書は全て中括弧は「{」で改行していました。
Visual StudioのC#コーディング規則でも,中括弧を改行する形式で書かれていました。
http://msdn.microsoft.com/ja-jp/library/vstudio/ff926074.aspx
中括弧
違和感ありまくり。
まぁ書いているうちになれるか。
namespace
Javaのpackageに該当するのかな?
C#のnamespaceはJavaのpackageと違って,
ソースコードの物理パスとか考えなくていいんですね。
それから,ファイル名とクラス名が一致する必要も無いんですね。
下記のソースコードみたいに,
一つのファイルに,複数のnamespaceも定義出来れば,
namespace入れ子による階層化も出来れば,
.による階層化も出来るみたいですね。
でも,単一ファイルでこんなに定義はしないか。
using System; namespace HelloCSWorld { class MainClass { public static void Main (string[] args) { NameSpaceA.Util.ShowMessage(); NameSpaceB.Util.ShowMessage(); NameSpaceA.Sub.Util.ShowMessage(); NameSpaceB.Sub.Util.ShowMessage(); } } } namespace NameSpaceA { class Util { public static void ShowMessage () { Console.WriteLine("NameSpaceA.Util"); } } namespace Sub { class Util { public static void ShowMessage () { Console.WriteLine("NameSpaceA.Sub.Util"); } } } } namespace NameSpaceB { class Util { public static void ShowMessage () { Console.WriteLine("NameSpaceB.Util"); } } } namespace NameSpaceB.Sub { class Util { public static void ShowMessage () { Console.WriteLine("NameSpaceB.Sub.Util"); } } }
そういえば,もう何年前かは忘れたけど初めてJavaをやったころ
クラス名を変えたんだけど,
ファイル名を変え忘れて
はまったことを思い出しました。
以上です。
それでは,また会えることを祈りつつ。